Сейчас на форуме: igorcauret (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Проблема динамических адресов в win 7
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 08 июня 2014 14:32
· Личное сообщение · #1

Ребят, я на днях стал читать туторы c сайта tuts4you о реверсинге программ и распаковке "Lenas Reversing for Newbies". Вот читаю 27 урок, в этом уроке автор находит адрес в памяти программы, в котором сохраняется 1 или 0. Единица это значит не зарегистрирована, а 0 зарегистрирована. Но у автора после перезапуска адрес сохраняется, а у меня этот адрес меняется. Вот сам тутор https://tuts4you.com/download.php?view.148

Я нашел решающий переход и перед ним call, который записывает в eax значение из того адреса вот в этой строке MOV AL,BYTE PTR DS:[EAX+24], но у автора в этом месте eax+24 всегда равен 00B0DC08, а у меня начало этого адреса меняется постоянно, то есть у меня он то 0013DC08, то 0014DC08 и так далее. То есть программа создает страницу памяти каждый раз в разных местах, но смещение DC08 всегда сохраняется.

Я решил поставить bp на VirtualAlloc как только увидел создание подобной страницы, после этого поставил на адрес со смещение DC08 бряк на запись и попал в код где устанавливается единичка в этот адрес, пропатчил на 0. Проблему так решил, программа зарегистрировалась.


Но у меня остается вопрос, почему у меня на windows 7 32 бита адрес меняется постоянно, а у автора он константа ?



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 08 июня 2014 14:59
· Личное сообщение · #2

aslr?



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

Создано: 08 июня 2014 15:19
· Личное сообщение · #3

Jaa пишет:
aslr?

Технология динамических адресов ? Но тогда почему у автора такое не происходит ? Как я понял по видео в уроке, у автора вин хп, может там эта технология не применяется ?

Кстати посоветуйте действительно реверсингом заниматься лучше на хп ?



Ранг: 53.9 (постоянный), 33thx
Активность: 0.050
Статус: Участник

Создано: 08 июня 2014 15:21 · Поправил: deniskore
· Личное сообщение · #4

Начиная с Windows Vista внедрен механизм --> Link <--



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

Создано: 08 июня 2014 15:33
· Личное сообщение · #5

deniskore пишет:
Начиная с Windows Vista

Да я это читал. Там есть строка "Отключено для приложений собранных без специальных флагов и при работе в режиме совместимости с более ранними версиями Windows."
Мне интересно узнать что за специальные флаги и где нужно менять ? Совместимость с хп поставил, но это не помогает, видимо еще флаги нужно менять.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 08 июня 2014 16:03
· Личное сообщение · #6

kola1357 пишет:
Мне интересно узнать что за специальные флаги и где нужно менять ?

Релоки. менять в хидере файла



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

Создано: 08 июня 2014 16:06
· Личное сообщение · #7

Vovan666 пишет:
Релоки. менять в хидере файла

Подскажи куда лезть в заголовок. Из гугла выяснил что надо отключать IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE но где и как найти не могу.



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 08 июня 2014 16:21 · Поправил: r_e
· Личное сообщение · #8

Header.Characteristics |= 1; // Relocations stripped

-----
старый пень




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

Создано: 08 июня 2014 16:26
· Личное сообщение · #9

r_e пишет:
Header.Characteristics |= 1

Я вот открыл заголовок программы в дампе, не вижу куда лезть там. Вот скрин http://floomby.ru/s2/VW9uQd
Какой параметр там нужно изменить ?

Добавлено спустя 7 минут
Вот сделал такие изменения, программа на точке входа http://floomby.ru/s2/hW9uGu Но адрес не стал статическим, после перезапуска программы адрес другой.



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 08 июня 2014 16:35
· Личное сообщение · #10

kola1357
Я хз как там и что в оле, но подозреваю что она не фиксит файло на диске. Возьми хью и пропатч этот флаг в бинаре - потом запускай. Он всегда будет грузиться по Image base.

-----
старый пень




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

Создано: 08 июня 2014 16:40
· Личное сообщение · #11

r_e пишет:
Возьми хью и пропатч этот флаг в бинаре

Сделал, но теперь оля отказывается открывать прогу, пишет ошибку формата.



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 08 июня 2014 17:07
· Личное сообщение · #12

kola1357
ребилд не забыл?



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

Создано: 08 июня 2014 17:12 · Поправил: kola1357
· Личное сообщение · #13

Jaa пишет:
ребилд не забыл?


Сделал, но все равно эта ошибка http://floomby.ru/s2/dW9uha
Делал через lordpe.



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 08 июня 2014 17:25
· Личное сообщение · #14

kola1357
скрин настроек пелорда сделай



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

Создано: 08 июня 2014 17:30
· Личное сообщение · #15

Jaa пишет:
скрин настроек пелорда сделай

http://floomby.ru/s2/wW9FUB Вот сделал.



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 08 июня 2014 17:39
· Личное сообщение · #16

попробуй такие


кстати сам файл прикрепи, бубном не увлекаюсь



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

Создано: 08 июня 2014 17:59 · Поправил: kola1357
· Личное сообщение · #17

Jaa пишет:
файл прикрепи

Значит новые настройки не помогли, все равно при запуске даже вне отладчика получаю ошибку, что файл не является приложением вин 32.
Оригинальный файл Botca666.exe называется. В нем делаю такие изменения http://floomby.ru/s2/UW9F5Y и сохраняю под именем test.exe, потом ребюилд делаю.

Вот проги http://rusfolder.com/40932546

Что-то у меня на сайт грузить не получается, не прикрепляется почему-то.



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

Создано: 08 июня 2014 18:12 · Поправил: dosprog
· Личное сообщение · #18

У вас же весь заголовок покурочен.
Нужно заменить только один бит:

Code:
  1. Comparing files Botca666.exe and new.exe
  2. Botca666.exe.exe
  3. 00000216: 0E 0F

Другой вариант - запаковать и распаковать UPX'ом. Он тоже взводит этот бит.
Но не всегда программа после UPX'а будет работать.
В общем, это изыск.





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

Создано: 08 июня 2014 18:26
· Личное сообщение · #19

dosprog пишет:
Нужно заменить только один бит:

А теперь правильно http://floomby.ru/s2/FW9FT4 ?
Программу с изменениями залил http://rusfolder.com/40932668 Она запускается, но адреса меняются все равно. Я ставлю бряк по адресу 42d202 MOV AL,BYTE PTR DS:[EAX+24] Там процедура проверки регистрации, вот EAX+24 каждый раз новое значение, а у автора тутора оно всегда одно и тоже. Хочется такого же добиться.



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

Создано: 08 июня 2014 18:30 · Поправил: dosprog
· Личное сообщение · #20

kola1357 пишет:
А теперь правильно http://floomby.ru/s2/FW9FT4 ?


А что там можно увидеть? - Я не знаю.
Пропатчьте файл, я же вложил патч в прошлом посте.





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

Создано: 08 июня 2014 18:34
· Личное сообщение · #21

dosprog пишет:
Пропатчьте файл,

Я это сделал, вот залил http://rusfolder.com/40932668, посмотрите, пожалуйста. Программа работает, но адрес меняется все равно при перезапусках.



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

Создано: 08 июня 2014 18:39 · Поправил: dosprog
· Личное сообщение · #22

kola1357 пишет:
Я это сделал, вот залил http://rusfolder.com/40932668,


Нет. У вас сделано вот что:
Code:
  1. Comparing files Bootca.exe and trk.exe
  2. Bootca.exe
  3. 00000217: 01 0F

А нужно так:
Code:
  1. Comparing files Bootca.exe and trk.exe
  2. Bootca.exe
  3. 00000216: 0E 0F


Короче, ковыряйте этот файл до тех пор, пока команда DOS:

fc /b OrigFile NewFile

не выдаст результат:

00000216: 0E 0F





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

Создано: 08 июня 2014 18:49
· Личное сообщение · #23

dosprog пишет:
У вас сделано вот что:

Я что-то запутался, вот в hex открыл мой файл http://floomby.ru/s2/HW9sKs Там ведь по смещению 217 стоит 0f 0b, а вы пишите 01 0f. Я что-то не понял тут.

Добавлено спустя 15 минут
kola1357 пишет:
Короче, ковыряйте этот файл до тех пор, пока команда DOS:

fc /b OrigFile NewFile

не выдаст результат:

00000216: 0E 0F

Добился все-таки такого результата, но по адресу 42d202 MOV AL,BYTE PTR DS:[EAX+24], eax все-равно меняется после перезапуска.
Вот 2 файлы: оригинальный и измененный.
http://rusfolder.com/40932856



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

Создано: 08 июня 2014 19:23 · Поправил: dosprog
· Личное сообщение · #24

--> Проверьте <--



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

Создано: 08 июня 2014 19:32 · Поправил: kola1357
· Личное сообщение · #25

dosprog, адреса разные все равно получаются.
http://floomby.ru/s2/UW9shK
http://floomby.ru/s2/gW9sfr

Еще в реестр ключ добавил HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages равный 0, это тут советуют dml.compkaluga.ru/forum/showtopic=26342 перезагрузил систему, но все равно адрес изменяется после перезапуска.

Вы для теста попробуйте поставить тоже бряк по адресу 42d202, в этом адресе прога брякается при попытке сохранить на диск, там в ней просто нажмите создать что-то и попробуйте сохранить каждый раз перезапуская прогу, вот у меня после перезапуска адрес новый в eax, когда прерываемся в 42d202.



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

Создано: 08 июня 2014 19:42 · Поправил: dosprog
· Личное сообщение · #26

kola1357 пишет:
dosprog, адреса разные все равно получаются.


Что-то вы совсем не то говорите.
То адрес блока памяти, который программа сама динамически выделила.
Но сам-то адрес 42d202 остаётся прежним.
Так что не нужно заморачиваться - всё в порядке.
Кстати, у меня в системе никакой настройки релоков не выполняется,
а адрес в EAX тоже другой при каждом новом запуске.

B8C88C, B8C8F8 etc.

Не в релоках там дело.





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

Создано: 08 июня 2014 19:49 · Поправил: kola1357
· Личное сообщение · #27

dosprog пишет:
То адрес блока памяти, который программа сама динамически выделила.

Да я про адрес блока памяти, который программа динамически выделяет, он каждый раз меняется. Но если вы скачаете тот видео урок, ссылка в шапке темы, то у автора видно что после перезапуска адрес памяти тот же самый.

Я как раз говорю про адрес памяти, а не адрес команды.

Автор в видео первый раз находит этот адрес памяти, в нем хранится 0 или 1, решение зарегана прога или нет, поэтому автор хочет сделать хороший патч, то есть не тупо джамп, а именно пропатчить этот адрес в памяти. Для этого он ставит бряк на запись и перезапускает прогу, и бряк срабатывает у него, то есть адрес после перезапуска не изменился. А у меня меняется, поэтому я ставил бряк на VirtualAlloc, чтобы поймать создание этой динамической секции. А уже после ставил бряк на этот адрес, учитывая в какой секции это.



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

Создано: 08 июня 2014 20:48 · Поправил: dosprog
· Личное сообщение · #28

А какая разница, одинаковый тот адрес, или нет?
И чем не устроил патч .41aeb9: 01 00 ?
Программа уже и так пропатчена и работает.
После этого патча в интересующем байте будет 0, где бы он ни находился.
На то оно и динамическое выделение памяти, чтобы не знать, какой конкретно будет адрес.
Он может быть и одинаковым от запуска к запуску, но никто этого обещать не может.
Зависит от причуд операционной системы.





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

Создано: 08 июня 2014 21:13
· Личное сообщение · #29

dosprog пишет:
И чем не устроил патч .41aeb9: 01 00 ?

Вот тут я не совсем понял, это 41aeb9 адрес в отладчике команды ?

Добавлено спустя 8 минут
А вы про адрес 41aeb6 с командой MOV BYTE PTR DS:[EAX+24],0 Собственно да эту команду и хочется найти, только вот автор ставил бряк на запись на адрес в памяти, который у него не менялся. И перезапустив, он нашел эту команду. А когда адрес меняется как вы предлагаете искать эту команду.



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

Создано: 08 июня 2014 21:53 · Поправил: dosprog
· Личное сообщение · #30

Ну, в общем то дело вкуса.
Главное, программа работает.

Хотя я бы исправил лучше .41B0C6: 01 00
Тогда и при выборе в меню "New file" не появляются никакие лишние надписи.

| Сообщение посчитали полезным: kola1357
. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Проблема динамических адресов в win 7
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати