0x03 Reversing Theory(50)
-
Windows API Hooking _ ReadProcessMemory
메인 함수 시작 주소부터 10바이트 기계어 읽어오기. #include #include #include #include #define SIZE (10)int main(int argc, char* argv[]){DWORD pid = GetCurrentProcessId(); // getting process id(pid) // hardcoding versionLPCVOID lpBaseAddress = (LPCVOID)0x401100;LPCVOID *lpBuffer = &lpBaseAddress; // pointer (lpBaseAddress)LPVOID buf[SIZE] = { 0 };INT i = 0;// PROCESS_ALL_ACCESS = PROCESS_VM_WRITE + PROCESS_VM_READHA..
2018.03.11 -
ptrace Anti_Debugging
linux나 unix 등에서는 ptrace 시스템 콜을 사용해 프로그램을 분석, 디버깅, 리버스 엔지니어링, 수정 작업을 할 수 있음. ptrace는 프로세스에 접근해 코드, 데이터, 스택, 힙, 레지스터 등에 접근 가능. 사용자 레벨에서 프로세스 주소 공간에 접근한다. 즉, 누군가가 process에 attach하여 소유하고, 수정, 분석, 디버깅 등을 할 수 있다.process image 분석 및 code injection (PTRACE_POKETEXT 사용)도 가능하다.gdb, strace, ltrace 등은 모두 내부적으로 ptrace 사용 ptrace는 안티 디버깅에 사용될 수 있다. PTRACE_TRACEME 사용. 즉 자기자신 프로세스를 추적하도록 하는 것. 동시에 특정 프로세스를 trace하..
2018.03.10 -
WinDBG 사용법에 대해 공부
보호되어 있는 글입니다.
2018.02.24 -
IA-32 천천히 알아보자.
IA-32에 대해 공부를 하고 메모를 하는 시간을 가져보았습니다. 오늘 포스팅은 이야기를 전해주는 컨셉으로 진행해볼까합니다. 먼저, IA-32 프로세서 계열은 물리주소를 사용하여 8비트 물리메모리에 접근한다고 합니다. 해당 물리메모리는 마더보드에 있는 저장장치라고 하네요. 물리메모리는 정수형이면서 0에서 부터 1씩 증가하는 형태로 되어있다고 합니다. 주소 0 가까이 있을 수록 하위 메모리라고 하고, 마지막 바이트 근처는 상위 메모리라고 합니다. IA-32 이름에서 볼 수 있듯이 주소라인은 32개입니다. 그림으로 보는게 이해가 빠를 것 같아 그림으로 만들어 보았습니다. 이 그림을 보면, 주소라인 32개와 버스 2개(데이터, 제어)가 CPU와 연결되어 있다는 것을 알 수 있게 됩니다. 각 바이트는 32비트 ..
2018.02.22 -
p. 38
보호되어 있는 글입니다.
2018.01.22 -
chapter 1. 걸어서 통과하기
특정 악성코드의 일부 코드라고 한다. 이 코드에서 배울 수 있는 건 아주 많다. 그래서 하나하나 다 적으면서 복습을 해보려고 한다.넘나 재밌는거.....!! 하루 하루 지날 때 마다 한 단계씩 지식이 늘어나는 것 같아서 너무 좋다 ! 그럼 잡담은 그만하고 공부하자. 핵심 : 1. 작성 된 DLL 일부 이다2. 목표로 삼은 컴퓨터의 IDT 변조를 파악한다. -- IDT의 존재에 대해 오늘 처음 알았죠.3. 목표로 삼은 컴퓨터가 윈도우즈에 로그인 되어 있는지 파악한다. (explorer.exe를 통해) -- 이렇게 파악을 한다는 거면 컨셉이 RCE인가.?4. 목표로 삼은 컴퓨터에 영향을 줄 스레드를 만든다. -- 스레드 안에서 조용히 은닉되어서 악의적 행위를 하려고 하는 것 같다. 내가 최근에 작성해 본 코..
2018.01.22