본문 바로가기
728x90

강의_건강_취미/자격증68

gdb 명령어 #프로그램 작성 #컴파일 방법 gcc -o test test.c -m32 -mpreferred-stack-boundary=2 -fno-stack-protector -m32 : -mpreferred-stack-boundary=2 : -fno-stack-protector : #어셈블리어로 컴파일 gcc -S test.c => test.s 라는 어셈블리코드 생성 #intel 계열로 보는 방법 (gdb) set disassembly-flavor intel #child 프로세스 보는 방법 (gdb) set follow-fork-mode child ####### gdb명령어들 ##### gdbinit 파일을 다운받아 홈디렉토리에 생성하면 아래 설정들을 자동으로 세팅할 수 있음 display /i $pc -> 실행되.. 2014. 12. 10.
ASM to C (1) Dump of assembler code for function main: 0x0804841c : push ebp 0x0804841d : mov ebp,esp 0x0804841f : sub esp,0x10 // 지역변수가 선언되면 스택을 할당한다. ; init (0x10) 0x08048422 : mov BYTE PTR [ebp-0x1],0x61 ; ebp = 0x61 0x08048426 : movsx edx,BYTE PTR [ebp-0x1] 0x0804842a : movsx eax,BYTE PTR [ebp-0x1] ; edx = 1 ; eax = 1 0x0804842e : mov DWORD PTR [esp+0x8],edx 0x08048432 : mov DWORD PTR [esp+0x4],eax 0x080.. 2014. 12. 10.
리버싱 공부 1. 메모리 쓰는 방법과 레지스터 쓰는 방법 2. EIP, ESP, EBP는 항상 목적에 맞게 사용해야 한다. 3. 컴퓨터가 메모리를 어떻게 사용하는지 달달 외우고 있어야 한다. 4. 어셈블리어를 C언어로 고치는 연습방법 리눅스에서 C언어 작성 후 Compile 후 GDB를 이용하여 디버깅 gcc -o test test.c -m32 -mpreferred-stack-boundary=2 -fno-stack-protector gdb ./test 리눅스에서 C언어 작성 후 어셈블리어로 변경하여 코드 비교 gcc -S test.c cat test.s 코드 분석 시 중요한 것이 변수명과 함수명인데… 어셈에서는 이름을 알기 어려움 인자면 a 라는 변수로 치환 지역변수면 v 라는 변수로 치환 전역변수면 g 라는 변수로.. 2014. 12. 9.
반응형