Сейчас на форуме: Rio, YDS (+10 невидимых)

 eXeL@B —› Основной форум —› Код в памяти
Посл.ответ Сообщение

Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 января 2006 16:32
· Личное сообщение · #1

Предыстория: программа защищена сабжем (Alladdin 4M1). Доступ к сабжу осуществляется из кода, распакованного в память. Есть дамп памяти (OllyDBG) до и после обращения к сабжу.
PEiD говорит, что программа не запротекчена и не запакована. HaspEmulPE пароли не находит, HaspGrab сабж не брутфорсит, HaspEdit по тестовым паролям доступ не дает.
Вопрос 1. Что можно сделать с дампами - они различны, но что чего означает - не знаю.
Вопрос 2. Как найти точку входа в код в памяти? Он может быть и в самой программе, и в её DLL-ке.
Просьба: это вообще моя самая первая изучаемая программа (не считая Crackme#2), отнеситесь, пожалуйста, с пониманием.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 25 января 2006 16:38
· Личное сообщение · #2

под сабжем как я понял понимается hasp 4?
сходи сюда
forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=27062
там в шапке темы ссылки на эмуль и дампер



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 января 2006 17:29
· Личное сообщение · #3

Верно понял. HaspEmulPE v2.33 есть, дрова для хаспа родные, ExecuteHaspCommand не получает нормальных ответов.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 25 января 2006 18:23
· Личное сообщение · #4

сказал бы что за софтина - может пароли уже известны



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 января 2006 08:13
· Личное сообщение · #5

Программка отечественная, питерская, больше сказать не могу.
Код обращения к сабжу в памяти находится уже в момент запуска первого модуля, следовательно сразу после запуска exe-шника. Бряк на доступ показал, что обращение происходит из DLL по команде CMP (сравнивается значение в памяти с константой, а потом в другую секцию памяти пишется 02). Если сабж при первом доступе определился, то дальнейшего обращения не происходит. Сабж можно спокойно извлечь и работать дальше. Вот если-бы кто-то помог написать програмку, которая в памяти заменит значения в секции на другие!!! А CMP по 02 можно обойти заменой JE на JNE. И еще вопрос. Дамп памяти после обращения к сабжу может содержать пароли сабжа? Как их найти?



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 26 января 2006 11:50
· Личное сообщение · #6

из того что ты сказал я понял одно - там вызывается IsHasp() и больше ничего
если уж не хочешь эмуль - сделай патч/лоадер




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

Создано: 26 января 2006 19:49 · Поправил: ToBad
· Личное сообщение · #7

Yaffet пишет:
Вот если-бы кто-то помог написать програмку, которая в памяти заменит значения в секции на другие!!! А CMP по 02 можно обойти заменой JE на JNE.


Давай адреса и что на что менять. В таком виде:
0042FF16 FF E9
0042FF17 51 DB
0042FF18 58 06
0042FF19 8D 00
0042FF1A 55 00
0042FF1B F8 90

А так же не забудь путь к программе для запуска лоадера. Размер загрузчика будет около 50 кб. если устроит. В общем пиши в мыло: tobadko@mail.ru



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 февраля 2006 20:15
· Личное сообщение · #8

У меня с олей такая штука. Есть call 101a1712
по этому адресу jmp 101a1655
после перехода по джампу вижу инструкцию, а после скролла (посмотреть, что вверху)
адрес 101а1655 меняется на 101а1654, соответственно меняется инструкция.
Как и чем это побороть???



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 февраля 2006 20:21
· Личное сообщение · #9

Теперь по хаспу: есть пароли, есть дамп, есть регфайл, есть Hasp Emulator PE v2.33, нет мыслей
что делать дальше. На glasha@brstudio.com не обращался (как написано в ридми), поскольку не знаю,
чем это чревато. Как сделать эмуль???




Ранг: 116.7 (ветеран)
Активность: 0.10
Статус: Участник

Создано: 21 февраля 2006 20:21 · Поправил: Mifodix
· Личное сообщение · #10

>адрес 101а1655 меняется на 101а1654, соответственно меняется инструкция.
Там меняется на аналогичную по функции последовательность асм кода.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 февраля 2006 21:09
· Личное сообщение · #11

А что аналогичного в инструкциях???
1. 101A76E3 E9 C00C0000 JMP XXX.101A83A8
и
2.101A76E2 10E9 ADC CL,CH
101A76E4 C00C00 00 ROR BYTE PTR DS:[EAX+EAX],0

Только для начинающего, объясните пожалуйста.
И (не посчитайте наглостью) хотелось-бы услышать комментарий Ara, если не трудно.




Ранг: 116.7 (ветеран)
Активность: 0.10
Статус: Участник

Создано: 21 февраля 2006 21:13
· Личное сообщение · #12

Yaffet пишет:
А что аналогичного в инструкциях???

Пройдись по F8 отладчиком во 2 случае и посмотри выполнится прыжок или нет.



Ранг: 3.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 февраля 2006 22:01
· Личное сообщение · #13

Прыжок то выполнится, но такие фокусы влияют и на соседние инструкции. Однако если это не важно,
тогда я вообще ничего не понимаю - зачем так делается???


 eXeL@B —› Основной форум —› Код в памяти
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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