-
Message HookingHack/Reversing 2015. 1. 21. 03:16
메세지 후킹은 말그대로 메세지를 가로채는 기술이다. user32.dll의 setWindowsHookExA()함수를 사용하는데, 원리는 아래와같다. 윈도우(창)는 키보드와 마우스등에서 인풋되는것들을 모두 Hook Chain을 통해서 처리한다. 그럼, 훅체인에 원하는 프로세스에대한 포인터를 등록하게되면 메세지가 들어올때 그 코드가짜여진대로 실행된다. 대표적인 메세지 후킹 방법으로 키로거가 존재한다. 후킹 요약 해커 사용자SetWindowsHookExA() - > Hook Chain
-
immuity IsDebuggerPresent 우회Python 2015. 1. 21. 00:12
kernel32.dll의IsDebuggerPresent함수는 제일 대표적인 안티디버깅 함수이다. 안티디버깅은 디버깅을 방해하는 기술인데, 엄청나게 많은함수들이 존재한다. IsDebuggerPresent함수는 1과 0으로 나눠 1이면 디버거가 실행중, 0이면 디버거가 없는것으로 판단한다. 디스어셈블한 코드는 아래와같다 MOV EAX,DWORD PTR FS:[18]MOV EAX,DWORD PTR DS:[EAX+30]MOVZX EAX,BYTE PTR DS:[EAX+2]RETN 하나하나 설명하자면 FS 레지스터로부터 0x18에 위치해있는 TIB의 주소를 로드한다.그리고 EAX에서 0x30위치에있는 PEB의 주소를 로드한다.그다음 PEB의 오프셋 0x2위치에있는 BeingDebugged의 값을 EAX에 할당하는데..
-
findinstructionPython 2015. 1. 20. 22:03
우선 소스를 보자 파이썬 해킹 프로그래밍에서 보면 imm.Assemble로 나와있는데 imm.assemble로 수정해주면 잘된다. immlib을 뒤져보면 함수들이 구현되어있는데 이름이 assemble과 밑에 search마저 책에서는 Search로 나와있는데 소문자로 수정해주자 그리고나서 getMemoryPageByAddress로 수정해주어야한다. 책에서는 by 로나와있다. 이렇게 해주고나서 이뮤니티 디버거에 들어가 !findinstruction 원하는명령어를 해주자 나는 PUSH EBP를 했다. 해주면 아래에 로그가 성공적으로 남겨졌다는 문장이나온다. (제가 설정한거에요) 그럼 이제 로그 윈도우를보면된다. 위에 보면 올리디버거처럼 문자 하나하나 버튼이있다 거기에 맨첫번째에 있는 l버튼을누르면 로그 윈도우..
-
snapshot 결과Python 2015. 1. 20. 20:25
snap 을 입력받으면 처리하는 구문을보자. Suspending all threads를 출력한다음, self.dbg.suspend_all_threads()구문을 통해서 프로세스들을 일시중지시킨다. 그리고나서 이제 컨텍스트 정보들을 구해야한다. 그래서 self.dbg.process_snapshot()구문으로 정보를구한다, 그리고 다 구해지면 바로 resume_all_threads()로 프로세스들을 재실행시킨다. 이제 restore부분이다 해당부분은 스냅샷 찍은부분으로 돌아가는 부분이다. 똑같이 suspend_all_threads()함수를 호출해, 프로세스를 일시중지시킨다. 그리고나서, process_retore()함수를 호출시켜 복귀를 한다음 resume_all_threads()함수로 재실행시킨다.
-
Process SnapshotPython 2015. 1. 20. 19:57
Pydbg 모듈은 프로세스 스냅샷이라는 기능을 제공한다. 이 기능은 프로세스를 일시중지시켜 메모리 내용을 얻을수있다.또, 얻고나서는 일시정지를 풀어 실행시킬수있다. 스냅샷을 만들고, 언제든지 프로세스 상태를 생성지점으로 갈수있다. vmware에서도 snapshot이라는게 존재한데 이와같은원리로, 찍어놓았다가 언제든지 그 시점으로 돌아갈수있다. 프로세스 스냅샷을 얻기위해서는 아래와같은것을 구해야한다 - Thread List- Thread CPU Context info- Process Memory Page 위 프로세스 정보를 얻기위해서는 실행중인 프로세스들을 정지시켜야한다. 그래야하는이유는 프로세스가 실행되면 안에있는 데이터가 계속해서 변경되기때문에 중지하지않으면 데이터가 계속 변경되어 스냅샷을 얻는데 데이..