TEB(Thread Environment Block)는 쓰레드정보를 담고 있는 구조체이고 PEB(Process Environment Block)은 프로세스 정보를 담고있는 구조체이다. 옛날에 덤프 분석할 때, PEB 정보 확인을 안해서 중요 정보를 놓쳤던? 적이 있다. 어쨌든 덤프 분석할 때도 잘 알아야 하고 안티리버싱에도 많이 사용되고 기타 등등 중요한 구조체들이기 때문에 잘 알아둘 필요가 있어서 여기에 정리한다. +추가되는 정보가 있다면 계속 채워나갈 예정이다. EPROCESS, ETHREAD, PEB, TEB 차이먼저, 같은 프로세스, 스레드 정보를 담고 있는 구조체이지만 EPROCESS, ETHREAD 구조체와 PEB, TEB 구조체가 어떻게 다른지를 알고 넘어가야 한다. EPROCESS, ETH..
ntdll.dll의 NtQueryInformationProcess를 활용한 안티디버깅 방법과 우회 방법에 대해 알아본다. 참고로 NtQueryInformationProcess는 zwQueryInformationProcess의 wrapper 함수로 동일하다고 생각하면 된다. NtQueryInformationProcess 안티디버깅 방식은 2번째 인자인 PrecessInfomrationClass에 어떤 값을 주느냐에 따라 총 3가지 방법으로 나뉘게 된다. (0x7/0x1E/0x1F) __kernel_entry NTSTATUS NtQueryInformationProcess( IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PV..
Twist1은 여러 안티디버깅 기법을 확인할 수 있는 문제인데 안티디버깅 플러그인도 안먹히고 코드가 중간중간 풀리는게 많아서 bp도 여러곳에 걸어주어야 하고 게다가 왜인지는 모르겠지만, OEP를 찾은 후 덤프를 떠주고 진행했는데 중간에 빠진 코드가 있어서 이것 때문에 삽질 시간이 더 길어졌다. 겨우 전부 우회를 한 후에도 키젠 부분에 페이크가 많아서 풀다보면 굉장히 지치는 문제이다. 확실히 푼사람 수가 확 줄어든 것을 보니 인내심을 충분히 갖고 풀어야 하는 문제인 것 같다. reversing.kr Twist1 풀이 이번 문제는 Windows x32 환경에서 풀어야 하는 문제로 Twist1.exe를 실행시키면 Input 값을 받고 있다. 일단, 패킹이 된 것인지? IDA로 디컴파일이 잘 안된다. pusha..