Добрый день. Друзья, если кто имеет набор линков (документов) по структуре ELF и/или в курсе особенностей добавления секции в ELF-header, буду крайне признателен за подсказки. Помогите, пожалуйста. P.S. Необходимо реализовать LPH (Local Process Hook) под FreeBSD.
http://www.yandex.ru/yandsearch?text=+ELF+reverse+engineering+&stype=www легко находит необходимые ссылки в том числе и на wasme
Угу, я делал подобное, только на google. /usr/include/elf* так же мне помогли. Правда, по вопросу добавления секции для LPH еще ничего не нашел. (Докуметнов накачал разных много, изучаю). Еще, кстати, есть ли нормальный редактор ELF (аналог LordPE для PE)?
первая попавшаяся ссылка из вышеприведённого поиска имеет в себе такой текст 8.2. Editing ELF Editing ELF is often desired during reverse engineering, especially when we want to insert bodies of code, or if we want to reverse engineer binaries with deliberately corrupted ELF headers. Now you could edit these headers by hand using the <elf.h> header file and those above structures, but luckily there is already a nice editor called HT Editor that allows you to examine and modify all sections of an ELF program, from ELF header to actual instructions. (TODO: instructions, screenshots of HTE) Do note that changing the size of various program sections in the ELF headers will most likely break things. We will get into how to edit ELF in more detail when we are talking about actual code insertion, which is the next chapter. http://linux.fopf.mipt.ru/RevEng/x430.htm
Я-то этот документ читал до конца... Еще до того, как сюда написал. Позволю себе процитировать тот самый "next chapter", о котором идет речь. Нас, безусловно, интересуют пп 10.4, 10.5. 10. Code Modification So now we know the tools to analyze our programs and find [...] 10.1. Reasons for Code Modification Code modification is most useful if we wish to change the [...] 10.2. Instruction Modification Since the smallest unit of code is the instruction, it [...] 10.2.1. Editing the arguments Editing the arguments of an assembly instruction is easy. [...] 10.2.2. Editing the Mnemonic This is far more tricky. 10.3. Single Instruction Insertion 10.4. Single Function Insertion Use unused space as found by disasm.pl (be careful about main) 10.5. Multiple Function Insertion Trickery.. We're working on a util to modify ELF programs and insert functions. What about using MMAP?? (P.S. Can you unmap executable memory to modify it... if they are doing an MD5 of their executable) 10.6. Attacking copy protection Lest I be accused of hiding in my ivory tower, lets look [...]
Насчет редакторов, уже нашел (ничего не проверял пока): 1. bed - Binary EDitor (Linux ELF binary) v0.0.5 (24MAR99) 2. HT ELF Editor http://hte.sourceforge.net 3. ELF header analyzer and editor 4. Elf Shell v0.51b3-portable is an automated reverse engineering tool with read/write capability for the ELF format http://elfsh.devhell.org
Да, кстати, кому-нибудь может быть полезен вот этот линк: http://www.woodmann.com/fravia/siul_333.htm Хотя на мой взгляд, статья пустая и ничего интересного в себе не содержит.