둘둘리둘둘리둘둘리둘둘리둘둘리둘
@ PEDA(Python Exploit Development Assistance for GDB) - 리눅스 플렛폼에서의 Exploit을 돕기위한 도구이지만 Exploit에 기초가되는 분석에도 상당히 유용한 Python script @ PEDA 설치 버전 확인[root@localhost home]# gdb -q(gdb) python print sys.version2.6.6 (r266:84292, Nov 22 2013, 12:11:10)[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] 파이썬이 2.x대 버전이면 그냥 설치가능한데 최신 리눅스에 gdb는 3.x대로 컴파일돼서 gdb 지우고 다시 2.x대로 컴파일해야한다고함 peda 설치[root@localhost work]# wget htt..
문제 자체는 쉬우나 다른 플렛폼에서의 리버싱이란게 어려울 수 있다 리눅스에서 리버싱할경우 개인적으로 IDA 리모트 디버깅이나 gdb를 쓰는데 문제가 어렵지않아 gdb로도 충분하겠지만 gdb는 또 명령어들도 그렇고 CLI환경에서의 리버싱이니 어려움이 있을 수 있겠다 IDA 리모트 디버깅 -> http://dool2ly.tistory.com/79 일단 'readelf -h ./Easy_ELF' 또는 'objdump -f ./Easy_ELF'를 통해 얻어낸 엔트리 포인트에서부터 gdb로 리버싱해 보자면 [root@localhost reversing.kr]# gdb ./Easy_ELF(gdb) set disassembly-flavor intel //어셈블리어 출력방식을 intel로(gdb) x/13i 0x080..
MessageBoxA함수에 브레이크를 걸어서 Wrong메세지 출력 루틴을 찾음 Wrong메세지 루틴은 0x004013AA에서부터 점프되어 온다 0x4013AA부근을 보면 FindResourceA - LoadResurce - LockResource등 리소스를 불러오는 루틴 후 불러온 리소스랑 뭔가를 틀리거나 카운트 0x15F90이 넘을때까지 비교한다 check누를때마다 실행되므로 그려진 이미지랑 리소스가 같은지를 체크하는듯 함 0x00401170부터 Bitmap 이미지 관련된 함수들이 보이는걸로봐선 bmp인듯 함 mspaint로 bmp파일을 만들고 헤더가 끝나는 지점부터 ImagePrc리소스(HxD로 까서 수동으로 찾음..)를 복사해줌 CreateCompatibleBitmap함수에 bmp이미지 사이즈를 알..
@IDA를 이용한 리눅스 원격 디버깅 IDA는 호스트 PC에서 구동되고 Debuggee는 리눅스 머신에서 작동하게 됩니다.리눅스 뿐만 아니라 여러 OS에서도 가능한것 같지만 리눅스에서밖에 안써봐서 리눅스 기준으로 설명하겠습니다. IDA 6.5기준이지만 버전별로 큰 차이는 없는것 같습니다. 1. 리눅스 머신에 서버 elf파일 구동 IDA설치폴더->dbgsrv 폴더에 OS별로 서버 파일이 있습니다. Debuggee가 구동될 시스템으로 알맞은 서버파일을 옮기고, 테스트용 간단한 elf파일을 생성한 후 서버파일을 실행합니다. 2. Debuggee 파일을 IDA가 구동되는 시스템으로 이동시킨후 IDA 실행 테스트용으로 생성한 a.out 파일을 IDA가 설치돼있는 시스템(필자기준 윈도우)으로 옮긴후 IDA를 이용하..
Justin Seitz의 Gray Hat Python - Python Programming for Hackers and Reverse Engineers(2009)를 읽으며 책에 나와있는 소스만으로 코딩했을시 생기는 오류들과 그에 해당하는 소스 수정,추가,제거를 통해 오류해결법을 제시하겠습니다. 현재 작성중이며 내용은 계속해서 추가하겠습니다..(읽으며 작성중...) @ 3.4.1 SoftBreakpoints (p43) 책에 소개된대로 빌드 후 my_test.py를 실행시키면 Access Violation 이벤트만 계속 발생되는데, 이 이유는 책의 소스는 브레이크 포인트 설정후 바로 Debuggee를 재개시켜버려서이다.책의 bp_set 함수에서 printf의 시작을 0xCC(INT3)로 바꾼 후 해당 이벤트..