Hack/Reversing
-
-
Code,Data SectionHack/Reversing 2015. 4. 14. 18:25
TCHAR g_Name[] = "Hello World"; int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,PSTR szCmdLine, int iCmdShow){HWND hWnd;MSG msg;LPBYTE pBuff = new BYTE[512]; if(!RegisterClass(&WndClass)){MessageBox(NULL,"Windows Class",g_Name,MB_OK); return 0;} ....} 이러한 코드가 있다고 보자. 프로그램은 코드와 데이터, 힙, 스택 이렇게 메모리구조가 나뉘게되는데, 이 코드에서 쉽게 설명해보고자 한다. TCHAR g_Name[] = "Hello World"; // .dataMessageBox의 "Windows Class..
-
[CodeEngn]Advanced 04Hack/Reversing 2015. 3. 7. 13:26
해당문제는 처음에 언패킹이되어있지만 UPX같은것이아닌 간단한 XOR연산을통해 언패킹이 되는 프로그램이다. 그냥 F9를 두번눌러 프로그램이 실행되게끔하면된다. 그럼 언패킹이 풀리게되는데, Analysis Code기능으로 코드들을 표시해주고, strcmp하는 부분쪽에 가서 코드패칭을 간단하게해주어야한다. 이미 CodeEngn을 넣고 실행한결과이다. 답은 나와있는상태이며, 코드패칭은 위와같이해준다. 실수로 두개를 해버렸는데 40117B부분만해주면된다. 저렇게해준이유는, Invalid Serial이뜨면 곧바로 ExitProcess함수가 호출되어 바로 종료되기때문에 답 확인을 하지못한다. 저렇게해주면 Valid Serial이 호출되어, 종료되지않고 정상적으로 답을 확인할수있다. 그냥 실행하고 답을넣어주면 시리얼이..