#include "stdio.h" #include "elf.h"
void main() { Elf32_Ehdr elf_header; unsigned char magic[] = {0x7f,0x45,0x4c,0x46,0x01,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; int vma_addr = 0xA4000000; FILE *output = NULL;
memcpy(elf_header.e_ident, magic, sizeof(magic)); elf_header.e_type = ET_EXEC; elf_header.e_machine = EM_SH; elf_header.e_version = EV_CURRENT; elf_header.e_entry = vma_addr; elf_header.e_phoff = 0; elf_header.e_shoff = 0; elf_header.e_flags = EM_SH; elf_header.e_ehsize = sizeof(elf_header); elf_header.e_phentsize = 0; elf_header.e_phnum = 0; elf_header.e_shentsize = 0; elf_header.e_shnum = 0; elf_header.e_shstrndx = 0;
output = fopen("elfheader.bin","wb"); fwrite(&elf_header, sizeof(Elf32_Ehdr), 1, output); fclose(output);
}
혹시나 해서 꼼지락 대면서 gdb load 명령을 이용하여 프로그램 업로드 하기 위해
꽁수를 부려 봤는데.. 이정도 ELF 정도로는 속아주질 않는다 ㄱ-
아이디어 : load 시에 not an object file: File format not recognized 메시지는
즉, ELF 포맷에 맞추어 제대로 된 헤더만 맞추어 주면
원하는 메모리 번지로 임의의 파일을 올릴 수 있지 않을까?
결과 : 니미 ㄱ-
2009/02/16 - [회사일] - sh4-linux-gdb 의 load 명령어
'프로그램 사용 > gdb & insight' 카테고리의 다른 글
GDB Insight FAQ - support target list (0) | 2009.06.26 |
---|---|
insight - GDB GUI frontend (0) | 2009.06.26 |
gdb 한글 문서 (0) | 2009.06.18 |
gdb 기동시 xterm 에러 - STLinux (2) | 2009.04.09 |
sh4-linux-gdb 의 load 명령어 (0) | 2009.02.16 |