본문 바로가기

Reversing/Reversing15

IDA - 변수에 따른 데이터 영역 정리 전역변수 -ELF- 초기화[o] -> .data 영역초기화[x] -> .bss 영역raw String -> .rodata -PE- 초기화[o] -> .data 영역초기화[x] -> .data 영역 (변수명 : unk_)raw String -> .rdata 2013. 12. 14.
무료 .NET Decompiler 1. dotPeek http://www.jetbrains.com/decompiler/ 2. Telerik JustDecompile http://www.telerik.com/products/decompiler.aspx 3. ILspy http://ilspy.net/ 2013. 11. 4.
ollydbg로 dll파일 디버깅 DLL을 로드하는 실행 파일이 존재하는 경우에는 해당 실행 파일를 ollydbg로 열면된다. 이때 원하는 DLL을 디버깅 하기 위해서 Ollydbg의 [Debugging options-Events-Break on new module(DLL)]를 체크한다. 그러면 새로운 DLL이 로드될 때마다 브레이크가 걸린다. (F9로 진행) DLL을 로드하는 실행 파일이 없다면 해당 DLL을 LoadLibrary()하는 exe파일을 만들거나 Ollydbg의 loaddll.exe를 사용하면 된다. - DLL을 열어서 DllMain(), export 함수들을 살펴본다. IDA의 Jump to Entry Point(CTRL+E)를 보면 엔트리 포인트로 DllMain()과 export 함수들을 쉽게 찾을 수 있다. - DLL.. 2013. 2. 28.
static 안티 디버깅 PEB(+0x2) BeingDebugged 검사 : 디버깅 중이면 1, 일반 실행은 0을 가진다. 관련 함수 : IsDebuggerPresent() - BeingDebugged 값 반환 PEB(+0x68) NtGlobalFlag 검사 : 디버깅 중이면 0x70, 일반 실행은 0을 가진다. [*] 실행 후 attach한 경우에는 그대로 0을 가짐. ex) mov eax, fs:[0x18]; mov eax, dword ptr [eax+0x30]; movzx eax, byte ptr [eax+0x68]; ntdll의 NtQueryInformationProceses() 함수 PROCESSINFOCLASS 구조체에서 디버거 탐지에 사용되는 필드 ProcessDebugPort(0x7), ProcessDebugObj.. 2013. 1. 3.