Сейчас на форуме: tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› работа загрузчика (PE) на примере upack.exe
Посл.ответ Сообщение

Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 09:31
· Личное сообщение · #1

если открыть программу upack.exe просмоторщиком(ПЕ ЛОРД) то можно увидеть следущие.
меня интересует третья секция(в ней находится импорт) то RowDataOffset 10h. открываем етотже файлик любым Хекс редактором и смотрим что находится по смещению 10(запоминаем)
открываем программу в отладчике(кому какой нравиться)
смотрим етуже третью секцию, смотрим VirtualAdress, идем по етому значению там находится таже самая секция кода(третья все нормально) вот тока проблема загрузчик считал ее не со смещения 10h а со смещения 0
Вопрос? как и почему он ето делает. в чем фича??

69af_24.03.2008_CRACKLAB.rU.tgz - Upack.rar




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 25 марта 2008 09:33
· Личное сообщение · #2

кури пе формат и все поймешь

-----
iNTERNATiONAL CoDE CReW




Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 09:38
· Личное сообщение · #3

Spirit пишет:
кури пе формат и все поймешь

полный ответ




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 25 марта 2008 09:38
· Личное сообщение · #4

Переводчиком переведи RawDataOffset, может дойдет %)

-----
invoke OpenFire




Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 09:45
· Личное сообщение · #5

Ice-T пишет:
Переводчиком переведи RawDataOffset, может дойдет %)

Что дойдет?
RawDataOffset ето начало секции на диске! для индейцев повторяю что там значение 10
а он считывает не с 10 а с НУЛЯ! если поменять на 9 или на 11 то нечего не работает!
в память он считывает с RawDataOffset 0h
столько умников, хоть один ктото бы чтото по существу сказал. как говорит мой друг Пиз-ть легко ты вот возьми попробуй и зделай а там теоретически каждый может дизасемблировать, писать креки и ломать программы но увы етим занимаються не все програмисты и не довсех доходит
РАНГИ у вас высокие но судя по ответам ума не очень много




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 25 марта 2008 09:56
· Личное сообщение · #6

super_man86 пишет:
вот тока проблема загрузчик считал ее не со смещения 10h а со смещения 0

Загрузчик принудительно округляет смещение секции в файле на величину 200h



Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 09:59
· Личное сообщение · #7

dermatolog пишет:
Загрузчик принудительно округляет смещение секции в файле на величину 200h

почему он округляет значение 10 а не значение 9 или 11
или скажем так почему в меньшею сторону а не в большею? как ето определить в какую сторону он округлит?




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 25 марта 2008 10:05
· Личное сообщение · #8

super_man86 пишет:
почему он округляет значение 10 а не значение 9 или 11

Видимо ты криво патчил

super_man86 пишет:
как ето определить в какую сторону он округлит?

RealRawDataOffset = RawDataOffset AND FFFFFFE0



Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 10:06 · Поправил: super_man86
· Личное сообщение · #9

dermatolog пишет:
Видимо ты криво патчил

я не патчил! все что мне надо ето прочитать таблицу импорта а в таких вот мудреных файлах(не стандартных) натыкаюсь на косяки




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 25 марта 2008 10:09
· Личное сообщение · #10

super_man86 пишет:
если поменять на 9 или на 11 то нечего не работает!

super_man86 пишет:
я не патчил!


Голову не морочьте.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 25 марта 2008 12:25
· Личное сообщение · #11

super_man86 пишет:
меня интересует третья секция(в ней находится импорт)

У неупакованного файла. А этот файл упакован WinUpack-ом
У него даже заголовок "кривой".




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 25 марта 2008 12:51 · Поправил: Ice-T
· Личное сообщение · #12

Имхо, если бы значение было dword'ом, тогда было бы считано оттуда, а иначе нет смысла .. Вполне возможно, что загрузчик проверяет только старшее слово поля.

-----
invoke OpenFire





Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 25 марта 2008 13:10 · Поправил: Ice-T
· Личное сообщение · #13

И то округлено будет наверное

add:
впрочем дерматолог все прояснил

-----
invoke OpenFire





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 25 марта 2008 13:15
· Личное сообщение · #14

super_man86 если бы ты прошелся поиском по форуму, то нашел бы что конкретно этот вопрос уже обсуждался на форуме и был весь по костачкам обсосан. Это косается и остальных.

-----
Yann Tiersen best and do not fuck




Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 16:04
· Личное сообщение · #15

tundra37 пишет:
У него даже заголовок "кривой"

понятно что кривой. мне кажеться что если выдержать все стандарты ПЕ то прочитать таблицу импорта можно. загрузчик же както ее получает и если открыть редактором то ее там явно видно что она присутствует



Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 16:06 · Поправил: super_man86
· Личное сообщение · #16

PE_Kill
дай ссылку на данную тему. потому что то не могу найти.



Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2008 16:08
· Личное сообщение · #17

super_man86 пишет:
У него даже заголовок "кривой"

в том то вся и фишка что КРИВОЙ. с нормальными у меня проблем нету




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 26 марта 2008 11:59
· Личное сообщение · #18

ключевое слово: выравнивание
вирт. адрес выравнивается вниз, размер - вверх
10h, выровненное вниз на 200h = 0
потому виндовый загрузчик и читает данные с 0, а не с 10h
ты с таким же успехом можешь указать 20h, адрес всё равно будет выровнен

-----
EnJoy!




Ранг: 66.8 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 26 марта 2008 12:28 · Поправил: UsAr
· Личное сообщение · #19

если поменять на 9 или на 11 то нечего не работает!
этот dword 10h выбран не случайным образом. Кроме того что это SizeOfRawData, он также участвует в коде самого загрузчика upack'a, и просто так патчить его нельзя.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 26 марта 2008 12:37
· Личное сообщение · #20

Вот тема, где обсуждался этот косяк:
http://exelab.ru/f/action=vthread&topic=4611&forum=1&page= -1

-----
Yann Tiersen best and do not fuck




Ранг: 14.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 26 марта 2008 16:24
· Личное сообщение · #21

Народ всем огромное спасибо!
все зделал все работает!!


 eXeL@B —› Программирование —› работа загрузчика (PE) на примере upack.exe
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати