본문 바로가기

Reversing/Debugging Tech

gdbserver 디버깅 따로 ida에서 제공하는 dbgsrv에서 쓸만한게 없다면 gdbserver를 올려서 디버깅 해야한다. 서버에 gdbserver를 static으로 서버 환경에 맞게 컴파일하거나 이미 컴파일 된 파일을 다운 받아서 올리고 "sudo ./gdbserver 127.0.0.1:port ./binary" 이렇게 실행하면 된다. port부분에 1337, 7777처럼 포트 번호를 넣으면 된다. (해당 포트포워딩은 외부로 해 둬야 한다.)가끔씩 sudo를 안해서 ida에서 오류가 날 때가 있으니 해주는게 좋다.그리고 ida로 debugger를 Remote GDB debbuger로 설정하고 Debugger - Process Options에서 Application, Input file을 서버에서의 파일 위치로 잡고, Par.. 더보기
OS 동적 디버깅(vmware) vmware가상머신의 .vmx 파일을 텍스트 편집기로 열어서 하단에 debugStub.listen.guest32 = "TRUE"debugStub.hideBreakpoints = "TRUE"monitor.debugOnStartGuest32 = "TRUE"세 문장을 넣어줌 부팅하고 IDA에서 Attach -> Remote GDB Debugger -> localhost:8832 하고 0번에 있는거 선택 후 0x7c00에 브포 걸면 MBR 영역부터 디버깅 가능 더보기
16bit DOS Debugging 최근 16비트 DOS바이너리를 디버깅 할 일이 생겨서 디버깅 방법을 찾아 보았다. 일단 IDA Bochs Plugin으로 하는 방법이 있고 Turbo Debugger로 하는 방법이 있는데 Bochs는 설정이 너무 어렵고 힘드므로 터보 디버거로 했다. 이 터보 디버거 역시 WIndows98을 가상 머신에 깔아서 하는 방법이 있고, DosBox를 이용해서 하는 방법이 있는데 나는 DosBox를 이용해서 했다. 먼저 필요한 것은 Tasm이다. 설치는 http://sourceforge.net/projects/tasmforwindows/ 여기서 자신의 윈도우에 맞게 다운받아 설치하면 된다. 그리고 실행하면 전체화면이 DOS창으로 꽉 채워지게 된다. 이 때 당황하지 말고 Alt+Enter를 누르면 작은 화면으로 바.. 더보기
IDA Linux Remote Debugging IDA리눅스 원격 디버깅 하는 방법입니다.일단 준비물은 IDA, 리눅스(가상머신) 이렇게만 있으면 됩니다. 먼저 IDA폴더-dbgsrv로 가 주시면이렇게 파일들이 있습니다. 자신의 리눅스가 32비트라면 linux_server을, 64비트라면 64가 붙은 파일을 리눅스로 복사해 주세요. 그 다음 터미널에 ifconfig명령어로 리눅스의 IP를 아셔야 합니다. 그리고 아까 복사한 파일을 실행해 주세요.그러면 이렇게 23946포트로 연결을 기다리고 있습니다.그 다음 호스트 컴퓨터에서 IDA를 실행시킨 뒤이렇게 선택해 주시면이렇게 창이 나오게 됩니다. Application - 디버깅할 파일Directory - 디버깅할 파일이 있는 폴더Parameters - 전달할 파라미터Hostname - 아까 구한 리눅스의 .. 더보기