일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Mac rEFIt
- Mac 멀티 부팅
- 네트워크
- C++
- Mac host OS
- monitor mode
- hacking
- tcp checksum
- 네트워크 해킹
- Mac
- 틴즈 라이브러리
- android linux
- Network Cracking
- 해킹
- libtins
- ip checksum
- Mac 트리플 부팅
- network hacking
- Mac Kali Linux
- udp checksum
- wireshark 802.11
- AP Hacking
- mac 출력
- 802.11 Hacking
- airodump-ng
- 모니터모드
- packet capture
- Qt
- Nexus Root Toolkit
- 802.11
- Today
- 36
- Total
- 161,157
목록Develop (31)
Dork's port
C++에서 TUN interface를 핸들링 하던 중 매번 패킷에 00 00 08 00 과 같이 정보가 앞에 붙어있는 경우가 있어, 이것을 핸들링해주었다. 경험상 08 00은 아이피 헤더의 number 즉, ethernet header의 ether_type이라는것을 알수있었는데, 버퍼 값 계산이나 등등 너무 번거로워서 이게 뭔가 찾아보니, TUN interface를 사용할때 앞에 정보에 대한 헤더를 붙여준다고 한다. 이것은 interface 생성시 flag에 IFF_NO_PI 옵션 추가를 통해 제거해 줄 수 있다. Ref : https://stackoverflow.com/questions/24143227/converting-raw-packet-data-received-from-a-tun-interface
PDF에는 font type이 존재한다. 몰랐지만, 존재하더라. 그래서 그에 관련된 내용은 아래 링크에서 찾아볼 수 있다. 2019/05/16 - [Paper] - PDF Font type이란? PDF Font type이란? 논문을 작업하던 도중 PDF Type이 3로 되어있어, 1로 바꾸라는 피드백이 왔다(Python matplotlib를 사용하였는데, 기본적으로 Type3로 저장된다). 무슨말인지 몰라서 찾아보았다. PDF에는 Font가 들어가는데, 이 F.. blog.dork94.com 2019/05/16 - [Mac OS] - Mac OS(OSX)에서 pdf의 font type확인하기. Mac OS(OSX)에서 pdf의 font type확인하기. $ brew install poppler 먼저 위의..

프로그램에서 특정 정보를 출력할 목적으로 Widget를 찾아보았는데, QPlainText을 추천해서 간단하게 구현해봤다. import sys from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget from PyQt5.QtWidgets import QPlainTextEdit alertHtml = ""; notifyHtml = ""; infoHtml = ""; endHtml = " "; __author__='d0rk' class my_app(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('PyQt QPlaintex..

GUI 공부를 위해서 pyqt를 사용하고 있는데, top-down 방식으로 공부하려니 여간 쉽지가 않다. 구성이 모든 class로 이뤄져있고, 객체간의 관계가 복잡해서 document를 정독하고 나서야 겨우 구현에 성공했다. 소스 코드는 다음과 같다. import sys from PyQt5.QtWidgets import QApplication, QWidget,QDesktopWidget,QPushButton, QBoxLayout,QTreeWidget,QTreeWidgetItem __auther__='d0rk' class my_app(QWidget): def __init__(self): super().__init__() self.add_btn=QPushButton('추가') self.del_btn=QPush..

예전에 파이썬에서 db를 사용할 일이있어서 코딩했다가, 오랜만에 다시 사용할일이 생겨 찾아봤다. 또 까먹을 것 같아 정리차 남겨둔다. Python에서 database를 사용할 수 있는 방법은 여러가지가 있지만, 그 중에서 나는 mysql이나 mariadb를 사용하므로 이것들과 연동이 되는 라이브러리를 찾아보았다. 그래서 나는 pymysql을 이용할 것이다! 코드는 다음과 같다 import pymysql # dbconfig.py class MysqlController: def __init__(self, host, id, pw, db_name): self.conn = pymysql.connect(host=host, user= id, password=pw, db=db_name,charset='utf8') se..
error: Error: No resource found that matches the given name (at 'src' with value '@drawable/ic_arrow_back_white_24dp'). 위 오류수정 코드 from os import listdir from os.path import isfile, join mypath = r'C:\Users\Jang\Downloads\base\res\layout' onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] for file in onlyfiles: if file.find('xml') != -1: print(file) with open(mypath +'\\'+ file, ..
오랜만에 윈도우환경에서 작업하다 보니 파이썬 설치 오류가 생겨서 공유한다. pycrypto를 처음 설치할때는 VC++ Build Tools를 깔라고 해서 깔았더니, 설치 후에 구문 오류가 발생했다. 나는 다음과 같이 해결했다. Powershell을 관리자 권한으로 연다. 다음 아래와 같이 입력 $env:VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023"$env:CL="-FI`"$env:VCINSTALLDIR\INCLUDE\stdint.h`"" 이때 VCINSTALLDIR의 경로는 설치 버전이나 환경마다 상이하므로 본인에 맞는 경로를 적어주도록 하자. 그런후 pip나 easy..
안녕하세요. 오늘은 음성변조에 대해 알아보도록 하겠습니다. 우선 이 내용은 gilgil님께서 강의하신 내용을 토대로 포스팅 하는 것임을 알려드립니다(조선일보 폭언 원본에 대해서는 포스팅 아래에 있습니다). 음성변조는 음성파일에서 Pitch 라는 개념을 변조시켜 만드는 것 입니다. Pitch는 전체적인 음의 높낮이라고 생각하시면 편해요! 그래서 간단하게 Pitch를 바꿔주는 웹사이트를 구축해보았습니다. 사용법을 알려드리도록 할게요! 먼저 웹사이트의 화면입니다. 웹사이트는 현재 wav파일만 지원하는 상태입니다. 확장자가 다른 경우 온라인 변환기에서 변환이 가능하며, Youtube에 있는 동영상의 음성 또한 유튜브 음성 다운로드 온라인을 통해 할 수 있습니다. 추후에 웹사이트에 이 기능들도 추가하도록 할게요!..
Gitlab 이용 중 git clone을 통해 프로젝트를 다운로드 하려하는데 매번 ID, Password를 묻길래 번거로워서 찾아보았습니다. 아이디 패스워드 저장을 위해선 아래의 명령어를 사용하시면 됩니다. $ git config credential.helper store 참조 : https://stackoverflow.com/questions/35942754/how-to-save-username-and-password-in-git
까먹을 것 같아서 정리해둡니다. 프로그램에서 인자를 전달 받는 방법은 2가지가 있는데 프로그램 실행시 동시에 입력받는 argv 및 프로그램 실행 후 코드내에서 gets나 scanf를 이용하여 받는 방법이 있습니다. 이때 268개의 A와 0xdeadbeef의 인자를 attackme라는 프로그램에 전달한다고 가정 하겠습니다. #프로그램 실행시 인자 전달 방법(argv) Python $ ./attackme $(python -c 'print "A"*268 + "\xef\xbe\xad\xde"') Perl $ ./attackme $(perl -e 'print "A"x268 . "\xef\xbe\xad\xde"') #프로그램 실행 후 인자 전달 방법(gets, scanf 등) Python $ (python -c '..
안녕하세요! 오늘은..! 아두이노를 시작해보려고 합니다. 그래서 MacOS에 대한 최신 포스팅이 없어 삽질을 해보다 구동에 성공했습니다! 우선 제 아두이노 사진 및 환경을 보여 드리겠습니다. OS : MacOS High Sierra ver. 10.13.3 다음으로 아두이노 코딩을 위한 IDE를 다운 받도록 하겠습니다. 아래의 주소로 가시면 스크린샷 과 같은 홈페이지가 나옵니다. Mac OS X 다운로드를 눌러줍니다! JUST DOWNLOAD 를 눌러주면 파일 다운로드 됩니다. 다운로드 받은 파일을 실행시키면 아래와 같은 화면의 IDE를 볼 수 있습니다. 하지만, 저의 경우 정상적으로 포트가 인식되지 않아 코드를 제대로 작동 시킬 수 없었는데요. 아래의 홈페이지에서 파일을 드라이버를 다운받은 후 재부팅 하..
안녕하세요. 간단한 Python 명령어를 알아 보도록 하겠습니다. 다음과 같은 문자열이 있을 경우 앞의 공백을 모두 삭제하고 리턴해 주는 함수에 대해 소개 시켜드리려고 합니다. str = " This is test" 아래와 같이 lstrip을 이용해주시면 결과와 같이 공백을 모두 삭제할 수 있습니다. str = str.lstrip() print(str) 결과 : "This is test"
안녕하세요. 오늘은 간단하게 Pycharm에 무한 반복현상에 대한 해결 방법에 대해 알아 보겠습니다. 어느날 Pyacharm을 켜보니 indexing이라고 무한 반복이 되더라구요(이때 indexing되는 파일이 같았습니다). 그래서 그 해결방법을 찾아 보았습니다. 우선 Preference --> Project:project_name --> Project Structure 에서 가장 상위에 있는 프로젝트 폴더를 클릭하고 확인을 눌러주시면 간단하게 해결 됩니다. 참조 : https://stackoverflow.com/questions/24955896/pycharm-indexing-goes-into-infinite-loop
안녕하세요. 오늘은 Mysql을 C++을 통해 사용하는 방법에 대해 알아보도록 하겠습니다. 우선 설정은 이전 포스팅에 관련 내용을 다루었으니 참고 바랍니다.2017/12/13 - [Linux] - Kali Linux에서 Mysql 설치 및 C++ 환경 설정(Mysql root password setting) //SqlMagician.h #include #include #include #include #include #include using namespace std; class SqlMagician { sql::Driver *driver; sql::Connection *conn; sql::Statement *stmt; sql::ResultSet *res; string insertCmd="INSERT IN..
안녕하세요. 오늘은 LibTins를 이용해서 주변에 있는 AP(공유기)를 탐지하고 출력해주는 Class에 대해 살펴보도록 하겠습니다. //APSniffer.h #include #include #include #include class APSniffer{ char* sniffDev; typedef Dot11::address_type bssid; typedef std::map apList; apList aplistMap; void upLinePrompt(int count); void showAPList(); bool handle(PDU& pdu); public: APSniffer(char* mDev); bssid findBSSID(std::string ssid); void run(); }; //APSniff..
이번에는 Thread 실행시 어떠한 Class의 멤버 함수를 Thread로 동작시켜 보도록 하겠습니다. 처음에 Thread를 사용할 당시 main()에서 선언된 일반 함수를 실행시키는 것과 같이 아래처럼 Thread의 Parameter를 주었습니다(이때 Wpa2Sniffer Class에 run이라는 Function이 있다고 가정하고 해당 Function의 Parameter 는 void형 입니다). Wpa2Sniffer wpa2Sniffer; thread t1(wpa2Sniffer.run); 이때 컴파일을 실행하면 invalid use of non-static member function 오류가 나타나게 됩니다. 그래서 아래와 같이 소스코드를 수정하면 정상적으로 동작이 됩니다(참고한 Stackoverflo..
안녕하세요. 오늘은 LibTins를 통해 암호화된 패킷이 아닌 평문 패킷(OPEN WIFI)에 대한 Sniff 예제를 살펴 보도록 하겠습니다. #include #include #include "printdata.h" using namespace Tins; using namespace std; void usage(); bool chkArgc(int argc); bool foo(PDU& packet) { const TCP& tcp = packet.rfind_pdu(); // const TCP* tcp1 = packet.find_pdu(); reference find // if(tcp.dport()!=80&&tcp.sport()!=80) return true; //parsing HTTP Packet cout
오늘은 802.11 패킷을 LibTIns를 통해 복호화 하는 간단한 예제를 알아보도록 하겠습니다. LibTins에 대한 기초적인 예시가 많이 존재하지 않으므로, 알아가는것을 차츰차츰 포스팅 하도록 하겠습니다. #include #include #include "printdata.h" using namespace Tins; using namespace std; void usage(); bool chkArgc(int argc); bool foo(PDU& packet) { const TCP& tcp = packet.rfind_pdu(); // const TCP* tcp1 = packet.find_pdu(); reference find // if(tcp.dport()!=80&&tcp.sport()!=80) ret..
안녕하세요. 오늘은 무선랜 라이브러리의 대가인 libtins 를 설치하는 방법에 대해 알아보도록 하겠습니다. 네트워크를 공부하다보면 Wireless를 공부하게 되는데, 무선 패킷 decrypt 및 패킷 sniffing 코딩을 하는 데 많은 어려움을 겪습니다. 802.11에 대한 공부의 목적이라면 직접 코딩하는 것이 훨씬 더 많은 도움이 되지만, 그러한 경우가 아닌 802.11에 대한 이해도가 있는 상태에서 관련 된 코딩을 하기 위해선 많은 시간이 소요됩니다. 이때 관련 라이브러리를 이용하면 코딩이 한결 편해지는데 무선랜 라이브러리는 대표적으로 libtins가 있습니다. 라이브러리 설치 방법에 대해 알아보도록 하겠습니다. libtins를 설치하기 위해 필요한 패키지를 먼저 설치하도록 합니다. # apt-g..
MAC Address를 저장하는 간단한 소스코드를 공개할까합니다. 아마 많은 분들께서 MAC Address를 저장하실때 보통 아래와 같이 선언하여 많이 사용하고 계실겁니다. uint8_t mac[6]; memcpy(mac,otherMac,6); uint8_t 타입으로 1바이트 크기의 배열 6개를 잡아 총 48비트를 만들어 MAC Address를 저장하고, 저장시에 memcpy를 이용하여 address를 copy합니다. 그러나, 이렇게 사용하면 가독성이 떨어지고 memcpy()를 소스코드에 많이 적어야 하는 불편함이 있습니다. 이러한 문제를 class와 연산자 오버로딩(opperator overloading)을 이용하여 아래와 같이 쉽게 사용가능합니다. //mac.h #ifndef MAC_H #define..