나는 내 학교의 보안 프로젝트를하고있다.GDB disass main
이 프로젝트의 경우 바이너리가 있으며,이 바이너리의 의사 코드를 만들고 익스플로잇을 수행해야합니다.
더 잘하려면 ASM 나는 정확히 같은 소스 코드를 c에서 처리하려고합니다. 나는 edx에 문제가있다.
0x080484a5 <+41>: mov edx,0x8048468
이 전체의 주요 코드 :
Dump of assembler code for function main:
0x0804847c <+0>: push ebp
0x0804847d <+1>: mov ebp,esp
0x0804847f <+3>: and esp,0xfffffff0
0x08048482 <+6>: sub esp,0x20
0x08048485 <+9>: mov DWORD PTR [esp],0x40
0x0804848c <+16>: call 0x8048350 <[email protected]>
0x08048491 <+21>: mov DWORD PTR [esp+0x1c],eax
0x08048495 <+25>: mov DWORD PTR [esp],0x4
0x0804849c <+32>: call 0x8048350 <[email protected]>
0x080484a1 <+37>: mov DWORD PTR [esp+0x18],eax
0x080484a5 <+41>: mov edx,0x8048468
0x080484aa <+46>: mov eax,DWORD PTR [esp+0x18]
0x080484ae <+50>: mov DWORD PTR [eax],edx
0x080484b0 <+52>: mov eax,DWORD PTR [ebp+0xc]
0x080484b3 <+55>: add eax,0x4
0x080484b6 <+58>: mov eax,DWORD PTR [eax]
0x080484b8 <+60>: mov edx,eax
0x080484ba <+62>: mov eax,DWORD PTR [esp+0x1c]
0x080484be <+66>: mov DWORD PTR [esp+0x4],edx
0x080484c2 <+70>: mov DWORD PTR [esp],eax
0x080484c5 <+73>: call 0x8048340 <[email protected]>
0x080484ca <+78>: mov eax,DWORD PTR [esp+0x18]
0x080484ce <+82>: mov eax,DWORD PTR [eax]
0x080484d0 <+84>: call eax
0x080484d2 <+86>: leave
0x080484d3 <+87>: ret
당신이 나를 찾는 데 도움이 될 수있는 방법 41 + 메인 라인 :)하십시오을 수행하는 나는 방법 C에서이 작업을 수행하는 더 IDEE이 없다?
는
0x8048468은 함수 yes의 포인터입니다. 나는이 리눅스 배포본에 nm이 없다. –