objdump 2

[프로그램 패치] 바이너리 코드 수정하여 프로그램 패치하기 [@ KUICS]

아래 내용은 고려대학교 정보보호 동아리 KUICS의 수업 내용을 바탕으로 작성한 것입니다. 여기 어떤 프로그램이 실행해도 아무 일도 안 일어납니다. 우리는 이 프로그램이 제 기능을 다하도록 패치해 볼 겁니다. 1. objdump 이용해 기계어로 번역하기 2. 원인 파악 위 바이너리를 보아, 프로그램이 갑자기 종료되는 것은 왠지 0x1188 위치에서 killer 함수가 호출되기 때문인 것 같습니다. 3. pwntools의 ELF 객체 이용해 문제의 코드 패치하기 0x1188 위치의 5바이트 만큼의 코드를, 아무 작동이 없다는 의미의 nop의 코드로 대체함으로써, killer 함수의 호출을 없애보겠습니다. 이를 위해선 아래와 같이 코드를 입력합니다. e.address: Address of the lowest..

IT/역공학 2024.03.10

[Shellcode] objdump을 이용한 byte code 추출

예시 어셈블리 코드 (shellcode.asm)의 byte code를 추출해보겠습니다. shellcode.asm section .text global _start _start: xor eax, eax push eax push 0x68732f2f push 0x6e69622f mov ebx, esp xor ecx, ecx xor edx, edx mov al, 0xb int 0x80 1. nasm 설치 sudo apt-get install nasm 2. shellcode.o 생성 nasm -f elf shellcode.asm 3. shellcode.o 파일을 어셈블리 언어로 변환하여 출력 objdump -d shellcode.o 4. shellcode.bin 생성 objcopy --dump-section .t..

IT/시스템 보안 2024.02.28