목록Reversing (12)
Hacking Arts
보호되어 있는 글입니다.
출처 : http://egloos.zum.com/roka2813/v/3048313 WinDBG를 기본 Postmortem 디버거로 등록하기 %ProgramFiles%\Debugging Tools for Windows\windbg.exe -i Postmortem 디버거 해제 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 값 이름: Auto 데이터 형식: REG_SZ 값 데이터: 0
- 원본 코드의 일부를 패커/프로텍터가 생성한 메모리 영역으로 옮겨 실행시키는 기법- 만약 프로세스 메모리를 덤프 시키면 OEP 코드의 일부가 제거되어서 실행이 정상적으로 되지 않는다.(Anti-Dump)- stolen byte가 적용된 파일을 다른 패커/프로텍터로 다시 압축했을 때 리버서에게 혼란을 줄 수 있다. PESpinCodeEngn - 리버싱 핵심 원리 / 인사이트 / 이상원
1. Breakpoints ㅇ Int 3 ㅇ Memory ㅇ Hardware 2. Timing Attacks ㅇ RDTSC ㅇ Win32 Timing APIs 3. Windows Internals ㅇ ProcessDebugFlags ㅇ Debug Object Handle ㅇ Thread Hiding ㅇ BlockInput ㅇ OutputDebugString 4. Process Exploitation ㅇ OpenProcess ㅇ Parent Processes ㅇ Self-Debugging ㅇ UnhandledExceptionFilter ㅇ NtQueryObject 5. Anti-Dumping ㅇ Nanomites ㅇ Stolen Code (Stolen Bytes) ㅇ SizeOfImage ㅇ Virtual..
-EPROCESS : 프로세스가 생성되면 해당 프로세스의 정보를 가지고 있는 EPROCESS 라는 구조체가 커널 메모리에 생성된다. 모든 프로세스는 각자의 EPROCESS 구조체를 하나씩 가지고 자신의 Thread 수만큼 ETHREAD 구조체를 커널 메모리에 가진다. -EPROCESS가 있는데 왜 PEB가 있을까? PEB는 유저모드에서의 Process 구조체이다. 반대로 EPROCESS 구조체는 커널 모드에서의 Process 구조체인데 나눈 이유는 프로세스가 만약 기본적인 정보인 process id값을 가지러 간다고 했을 때 EPROCESS까지 가려면 커널의 구조체에 접근을 해야된다. 이는 유저모드,에서 접근이 불가능하기때문에 시간이 오래걸리고 빈번하게 갱신되는 프로세스의 정보도 커널에 접근해서 수정해야..
- PEB란 ? Windows Kernel에서 프로세스에 대한 환경 정보를 담고 있는 구조체이다. 각 프로세스마다 PEB가 있고 각 프로세스 마다 가지고 있는 스레드 마다 TEB(Thread Environment Block)을 가지고 있습니다.PEB,TEB모두 커널모드에서는 존재하지 않습니다. 모두 유저모드 프로세스 하나당, 유저모드 스레드 하나당 존재하게 됩니다.[사진 1]-window xp 기준 PEB구조 nt!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 SpareBool : UChar +0x004 Mutant : Ptr32 Void +..
-사용 Tool : virtualkd , windbg , vmware 일단 VirtualKD를 구글검색해서 사이트에서 받아서 압축을 풀면 아래 사진과 같다. [ 사진 1 ] - 여기서 target이라는 폴더는 vmware의 가상 머신에 넣어준다. 그리고 나머지는 자신이 사용하고있는 host pc에서 사용하게 될 것이다. [ 사진 2 ]-일단 target에 있는 것을 install 해주면 됩니다. [ 사진 3 ] - 그다음 재부팅되면 아래 사진 4를 켜놓고 저런식으로 vitualkd를 선택하면 됩니다. [사진 4] -그 다음 dubugger path는 자신의 windbg가 설치된곳을 선택해주시고 오른쪽 run debugger를 누르면 됩니다. [ 사진 5 ]-그럼 요렇게 windbg를 이용해서 간단하게 k..