Сейчас на форуме: Rio, ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Смещение в файле EP |
Посл.ответ | Сообщение |
|
Создано: 28 сентября 2004 11:02 · Личное сообщение · #1 |
|
Создано: 28 сентября 2004 11:06 · Личное сообщение · #2 |
|
Создано: 28 сентября 2004 11:19 · Личное сообщение · #3 Это из моего старого "FAQ": --- Как найти EP место в файле, назовем этот адрес REP. Берем наш экзешник. Читаем по адресу 3Ch dword число - это адрес заголовка PE, прибавляем к этому числу 28h и читаем по получившемуся адресу снова dword (это будет виртуальный адрес EP (VEP) (без imagebase). Далее.. ой, блин проще написать самому этот патчер... Кароче надо перебрать атрибуты всех секций (длина заголовка секции - 28h), число секций хранится по адресу заголовка PE+6, надо считать word. Теперь нужен адрес заголовка первой секции: его получаем складывая адрес заголовка PE, константу 18h и word по адресу (адрес заголовка PE+14h). Теперь читаем атрибуты первой секции: нам нужен будет VOffSet(0Ch), VSize(08h), Roffset(14h). В скобках указаны смещения относительно адреса заголовка этой секции, читать каждый раз dword. А потом определяем, физический адрес EP (REP). Если (VEP - VOffset < VSize) and (VEP - VOffset >= 0) тогда наш REP = VEP - VOffset + Roffset, а если нет, то надо искать REP в следующих секциях. Вот так все хитро. Можно написать и проще, но в этом случае могут быть ошибки при поиске EP Offset (REP). Может кто знает как проще REP искать, так мне было бы интересно. Хотя вот хитрый способ: можно грабить из PEiD’a, а потом его принудительно закрывать, хотя алогритмец то там такой же будет (я имею ввиду в самом Peid). ----- Всем не угодишь ![]() |
|
Создано: 28 сентября 2004 11:24 · Личное сообщение · #4 можно сделать например так: invoke MapViewOfFile,fmaping,FILE_MAP_READ,0,0,0 mov map,eax invoke ImageNtHeader,map mov image,eax invoke ImageRvaToSection,image,fmaping,EP; тут EP виртуальный assume eax: PTR IMAGE_SECTION_HEADER mov edx,EP sub edx,[eax].VirtualAddress add edx,[eax].PointerToRawData mov EP,edx ; а тут уже становится смещением ![]() |
|
Создано: 28 сентября 2004 11:30 · Личное сообщение · #5 |
![]() |
eXeL@B —› Основной форум —› Смещение в файле EP |