-
OpenThread()Hack/Reversing 2015. 1. 15. 02:45
디버거는 cpu레지스터를 계속 수시로 확인해야한다. 그래야 에러처리, 예외가 발생했을경우 정보를 가져와서 무엇이 오류인지 알아낼수있다. 이렇게 레지스터를 확인하기위해 OpenThread()함수를 사용한다. OpenThread의 함수 프로토타입이다. OpenProcess함수와 비슷하지만 단 하나가 다르다. dwProcessId가 아닌 , ThreadId로, TID를 입력받는다. PID는 프로세스의 아이디고, TID는 쓰레드의 아이디이다. 프로세스내부에서 실행되는 쓰레드 리스트를 구하고, 리스트에서 원하는 쓰레드를 선택하고해당함수로 핸들을 구해야한다.
-
-
-
[파이썬해킹프로그래밍]my_debuggerPython 2015. 1. 13. 00:47
my_debugger에서는 전에 정의한 my_debugger_defines를 임포트하고, ctypes모듈도 임포트를 합니다! my_debugger에서 my_debugger_defines에 정의된걸 사용할거에요 kernel32 변수에다가 windll.kernel32를 정의하는 구문. kernel32.dll을 정의하는것같습니다 여기서는 load함수를 주의깊게 봅시다!! debugger클래스안에 load라는 함수를 만듭니다 self로, 어디서든 함수를 호출할수있구요 path_to_exe라는 인자가 존재하는데 해당 인자는 후반에가면 load('경로')를 통해 파일 로드하는데에 쓰입니다. 아까 정의했던 0x00000001이 담겨있던 디버그 프로세스 상수를 creation_flags에 넣습니다. 그리고 startu..