Hack
-
GOT OverwriteHack/Pwnable 2015. 6. 4. 23:58
GOT Overwrite는 간단히 말하자면 printf("/bin/sh");가 있다면 printf를 system으로바꿔 술을 실행시키는 기법이다. 필요한것은 3개이다. .plt주소, printf@got 주소, system주소 간단하게 코드를 짜자. 이 프로그램을 gcc로 컴파일해주자. gcc -o filename filename.c -z execstack -fno-stack-protector -m32 32비트로, nx bit와 카나리를 없애주는 옵션이다. got overwrite를 해보자. 우선 readelf로 plt주소를 구해보자. plt주소는 080482e0이다. printf의 got주소를 찾자 disas main을한후, printf@plt를 call하는 부분을찾자 80482f0을 call하는데 해당..
-
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..
-
-
-