Study Record

[리버싱] 간단한 어셈블리 코드 분석 후 복원 본문

리버싱/기본

[리버싱] 간단한 어셈블리 코드 분석 후 복원

초코초코초코 2021. 11. 12. 14:55
728x90

 

0x08048360 <main+0>:    push   %ebp
0x08048361 <main+1>:    mov    %esp,%ebp
0x08048363 <main+3>:    sub    $0x8,%esp
0x08048366 <main+6>:    and    $0xfffffff0,%esp
0x08048369 <main+9>:    mov    $0x0,%eax
0x0804836e <main+14>:   sub    %eax,%esp
------------------- mian 함수 시작 부분 --------------------

0x08048370 <main+16>:   sub    $0x8,%esp
0x08048373 <main+19>:   push   $0xbbb    # 인자값2
0x08048378 <main+24>:   push   $0xbbb    # 인자값1
0x0804837d <main+29>:   call   0x80482a0 <setreuid>
0x08048382 <main+34>:   add    $0x10,%esp
------------------- setreuid(0xbbb, 0xbbb) -------------

0x08048385 <main+37>:   sub    $0xc,%esp
0x08048388 <main+40>:   push   $0x8048444   # 인자값 = "/bin/vi"
0x0804838d <main+45>:   call   0x8048280 <system>
0x08048392 <main+50>:   add    $0x10,%esp
------------------- system("bin/vi") -------------------

0x08048395 <main+53>:   leave
0x08048396 <main+54>:   ret
0x08048397 <main+55>:   nop
------------------- main 함수 종료 ------------------------
#include <sys/types.h>
#include <unistd.h>

main() {
    setreuid(0xbbb, 0xbbb);
    system("/bin/vi");
}

 

728x90