Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

EGOiST[TSRh] и опять оЛЛя слухайте..поставил я себе 1.10 ну и че??.. стал...


EGOiST[TSRh] и опять оЛЛя слухайте..поставил я себе 1.10 ну и че??.. стал дебажить и когда трейсишь по F8 она мне листинг через 3 строки вверх подправляет, это както можно отрубить?
RideX :: Ещё хочу добавить вопрос:
Можно ли в Olly дебажить файл, у которого есть секция отладки (.debug), если да, то как? Пример такого файла, AlfaClock 1.60, можно взять здесь: http://www.alfasoftweb.com/download/

MC707 :: EGOiST[TSRh]
Я тебя недопонял. Как это поравляет? Обычно она так делает, когда ты протектор трейсишь какой-нить. Так это и в айсе так же будет...

EGOiST[TSRh] :: ну она курсор все время поднимает на первею строку(2 прйдешь, на 3ю понимет обратно), и причем не тока в протекторе..а просто в нормальном коде..и при этом иногда ругается что типа на следующей инструкции совсем даже не код

MC707 :: RideX
И тебя я тож недопонял... Как обычно... ОЕР = 40640C

Mario555 Re: MC707 :: EGOiST[TSRh] пишет:
цитата:
строки вверх подправляет, это както можно отрубить?


А никак :( меня эта хрень тоже бесит...

MC707 пишет:
цитата:
Как обычно... ОЕР = 40640C


Не смеши... В AlfaClock 1.60 сидит аспр 1.3 «full», там как такового OEP нету, всё до главного call размазано по протектору. Это твоё 40640C всего лишь вызов апи. Если ты распаковал эту хрень, то расскажи plz, как это сделал. С импортом и таблицей «call eax» я разобрался, спёртый код тоже можно попробовать восстановить, но вот что делать с мусором который по коду инита разбросан (тот что исключения вызывает aka SEH) и с четырьмя call «protector» ?

MC707 :: EGOiST[TSRh]
Хе. Я конечно боюсь предположить, что это цикл... Хотя вряд ли от тебя такого ожидать можно :)
Лучше дай файл или линк, я посмотрю.

EGOiST[TSRh] :: не не цикл... ну смотри.. ставишь бряк гденить..начинаешь трейсить.. жмешь 2 раза F8, на 3й она какбы скролит листинг кода на 3 строки вниз т.е. какбы курсор поднимается.. и это в любой проге

MC707 :: EGOiST[TSRh]
Нда... Я больше ничего не могу предположить кроме скролла или глюка.
Ты когда бряк ставишь рвется она внизу экрана? Если да, то то она автоматом скроллит код вверх.
Иначе глюк имхо.

EGOiST[TSRh] :: нее, рвется какраз вверху..:D гмм а какая последняя версия то..может внатуре глюк

MC707 :: последняя - 1.10 step 3 (c)
хотя я работал на всех 3х a,b,c на WinXP & Win98SE. Все было ок.
Хотя step 3 на ХР еще не успел потестить

MC707 :: А вообще давай так - я те свой ollydbg.ini могу заслать - с ним проверишь. Может в настройках чего-то не то...

MC707 :: Mario555 пишет:
цитата:
А никак :( меня эта хрень тоже бесит...


Чего-то я не понимаю о чем вы... Просто видимо это от того, что айс я не запускал уже месяцев 5

Mario555
Я уж понял, что это 1.3.
Сам пока не распаковывал. Вечером попытаюсь.
А «ОЕР» я написал для того, чтоб показать что дебажится она также как и остальные.
Просто другой вопрос, как ее распаковать.

RideX :: MC707 пишет:
цитата:
чтоб показать что дебажится она также как и остальные


В SIce не даёт бряки ставить, вылетает с ошибкой, вот решил попробовать Olly, непонятно как пройти до OEP. Почитал туторы по Olly, но здесь что-то так не получается. Я подумал что это из-за секции JCLDEBUG (volodya в первой части статьи упоминал, что секция отладки может как-то мешать, но точно не знаю как).

Mario555
Значит это и есть аспр 1.3 и всё из-за него? Я первый раз такое встретил.

P.S. AsprDebugger и Stripper тоже отдыхают...

MC707 :: Надо будет его стриппером 2.11 попытать

WELL :: MC707 пишет:
цитата:
Надо будет его стриппером 2.11 попытать


А он уже есть для скачивания?

RideX :: WELL пишет:
цитата:
А он уже есть для скачивания?


Пока нет, но этот файл тоже не берёт :(

WELL :: Значит будем ждать следующую версию

EGOiST[TSRh] :: короче..поставил старую тоже самое.. НО заметил одну фичу..это проичходит только если юзать бряки... если просто трейсить с самого начала, то все ок..

Mario555 :: WELL пишет:
цитата:
Значит будем ждать следующую версию


Халявщики... :)

Mario555 :: По поводу 1.3.
Мусор разбросаный по интиту - это бывшие jmp’ы. При прохождении этого мусора срабатывает обработчик исключений, который сравнивает адрес где произошло данное исключение с адресами в таблице:
.............
00E79D98 FF 8E 01 00 2C 48 7C 73 яЋ.,H¦s
00E79DA0 52 B9 00 00 2C 48 7C 76 R№..,H¦v
.............
команда была тут - 00418EFF FFBB ??? ; Unknown command
когда адрес найден, то берут соответствующую ему циферку (2C 48 7C 73) и что-то с ней делают - а именно высчитывают определённые байты и записывают их в стек, там и будет выполнен jmp, например так:

0012FAEC -0F84 E2932E00 JE AlfaCloc. 00418ED4
0012FAF2 68 018F4100 PUSH 00418F01
0012FAF7 C3 RETN

А место где произошло исключение выглядит так:

00418ED4 MOV EDX,EBX ; сюда выполнится jmp
00418ED6 MOV EAX,DWORD PTR DS:[4EA860]
00418EDB CALL AlfaCloc.00418ADC
00418EE0 CMP EBX,DWORD PTR DS:[4170F4]
00418EE6 JE SHORT AlfaCloc.00418F01
00418EE8 MOV EAX,EBX
00418EEA CALL AlfaCloc.004033D8
00418EEF MOV EBX,EAX
00418EF1 MOV EDX,EBX
00418EF3 MOV EAX,DWORD PTR DS:[4EA860]
00418EF8 CALL AlfaCloc.00418AF4
00418EFD TEST AL,AL
00418EFF ??? ; Unknown command == тута ошибка :)
00418F01 XOR EAX,EAX ; сюда попадём, если не выполнится jmp

Вообщем надо разобраться что означают цифры типа «2C 48 7C 73», и тогда можно будет попробовать вернуть jmp’ы на место.

PS армадилу никому не поминает ?! :))))))

PPS Упс... оказывается там не только jmp’ы крадутся, но ещё и call’ы... выполняются они так
0012FAEC 68 9A8F4100 PUSH 418F9A ; адрес куда вернёмся после выполнения
0012FAF1 68 388B4100 PUSH 418B38 ; а сюда call
0012FAF6 C3 RETN

ZX :: Mario555
А на счет импорта 1.3 ничего не желаешь сказануть?

Mario555 :: ZX пишет:
цитата:
А на счет импорта 1.3 ничего не желаешь сказануть?


Дык в моём туторе по 1.3 «lite» про импорт всё расписано, а в «full» импорт устроен также, как и в «lite». Кста ссылку я уже давал... и ты вроде этот тутор читал...

Mario555 пишет:
цитата:
Вообщем надо разобраться что означают цифры типа «2C 48 7C 73»


Похоже на то, что «2C 48 7C 73» и т.п. это просто пошифрованные смещения от начала другой таблицы. А вот в этой другой таблице уже более интересные вещи:

............
00E7D31C 02 04 02 59 CA E8 00 00 YКи..
............

02 - тип эмулируемого действия (jmp/call/ещё что-то, похожее на безусловный jmp), соответственно бывает три значения.
04 - тип jmp’a, тоесть 04h+80h=84h - je и т.п. (80h - const)
02 - длина спёртой команды (исп. для расчёта адреса на который перейдёт прога при не выполнении jmp или выходе из call). Бывает ессно 02, 05, 06.
59 - фиг знает...
CA E8 00 00 - адрес (без ImageBase), куда направлен jmp/call

ZX :: Mario555
Я взял ту же прогу, что и в туторе, сейчас только и начал ковырять. Оказывается, что запись джампов идет не из цикла создания, а простым копированием памяти из уже созданных в другом месте джампов. Так что описанный в туторе бряк на память не работает, и толку от него никакого.

Mario555 :: ZX пишет:
цитата:
Оказывается, что запись джампов идет не из цикла создания, а простым копированием памяти из уже созданных в другом месте джампов. Так что описанный в туторе бряк на память не работает, и толку от него никакого.


Ага, щас... Ессно нужно не первое срабатывание бряка... Вначале «простым копированием из памяти» идёт запись «заготовок», тоесть так
00406710 FF 15 C1 FA 51 B1 8B C0 FF 15 F7 50 C2 BE 8B C0 яБъQ±‹АячPВѕ‹А
А потом уже туда будут писаться правильные(для аспра) адреса джампов...
00406710 FF 15 F8 03 E2 00 8B C0 FF 15 BC 05 E2 00 8B C0 яшв.‹Аяјв.‹А
Но если ты даже этого не понимаешь, то наверно тебе с 1.3 рановато связываться...

PS кста адреса мест записи всегда будут 00xx7847 00xx7943 и т.д.

ZX :: Я тут вот что нарыл, аспр создает в одном месте чистую таблицу импорта и потом ее использует для создания переходников. Интересный вопрос навязывается - а если ее прикрутить к проге, что получится. Таблицу я тебе по мылу скинул.
Mario555 пишет:

цитата:
Ага, щас...


Эт точно, толь меня проглючило иль я не знаю. Только что таким способом попробовал и тут же на процедуре создания переходников. Хотя я ее уже вдоль и поперек излазил :) , у меня все таки такое чувство когда я на нее смотрю, что тут можно обойтись меньшими переделками в проге, и чем дольше я ее изучаю тем больше хочется ее урезать.

Mario555 :: ZX пишет:
цитата:
Я тут вот что нарыл, аспр создает в одном месте чистую таблицу импорта и потом ее использует для создания переходников.


Маловата таблица-то... это наверно просто iat самого протектора... ;)

ZX пишет:
цитата:
Интересный вопрос навязывается - а если ее прикрутить к проге, что получится


А ничего... jmp’ы должны быть в таблицу, а они остануться «в небо».

ZX пишет:
цитата:
что тут можно обойтись меньшими переделками в проге


Можно наверно и без переделок... Почитай тут.

Про «full»:
Хм... интересно, есть ли в таблице с адресами исключений лишнии ячейки, указывающие на левые адреса. Если нет, то прогнать бы через аспровую процедуру его же таблицу... (ессно конец процедуры нужно будет переделать, чтобы она call/jmp на место записывала)

ZX :: Mario555
Интересно, попробую. Сделать не проблемма. Как сделать такой лог?

Mario555 :: ZX пишет:
цитата:
Как прога будет искать джампы?


В смысле ? Ты про лог-патчер или про «full» ? А то я тут подрят написал, но это про совершенно разные вещи.

ZX :: Про лог-патчер.

Mario555 :: А что подробнее ? Я же вроде на Xforum всё расписал...
Только вот лучше сделать чтобы в логе была возможность обрабатывать не только адреса, но иногда и просто имена апи. Тоесть нужна будет какая-нить проверка (например символа » ), мол если адрес, то сразу пишем в txt, а если имя, то вначале GetProcAddress...
Я тебе два вида лога (к GetPix) скинул на мыло.

ZX :: Mario555 пишет:
цитата:
мол если адрес, то сразу пишем в txt, а если имя, то вначале GetProcAddress...


Сделаю попозжа.
Mario555 пишет:
цитата:
Я тебе два вида лога (к GetPix) скинул на мыло.


Мне первый больше понравился :)
Mario555 пишет:
цитата:
Тоесть нужна будет какая-нить проверка (например символа » )


Да это фигня там форматированная таблица получается, из нее выуживать не проблемма. Я скелет сделал попробуй своим зорким оком, что не так или что еще надо.

Mario555 :: Мде... «full» - это п*здец... Я сделал процедуру, которая восстанавливает call’ы и jmp’ы, только вот оказалось, что «лишнии» адреса всё-таки есть и поэтому при использовании этой процедуры патчатся ещё и «безобидные» адреса... А как отличать настоящий exception от правильного кода (там где FF) я не знаю :(

ZX
Второй удобнее, т.к. если использовать его, то вообще никаких изменений в код протектора вносить не надо будет.
Смотри почту.

ZX :: Вот если б найти способ указания имени библиотеки в логе - тогда не проблемма.

ZX :: Mario555 пишет:
цитата:
А как отличать настоящий exception от правильного кода (там где FF) я не знаю :(


Опиши, что ты делаешь, а я попробую найти способ :)

Mario555 :: ZX пишет:
цитата:
имени библиотеки в логе


Зачем имя ? есть же mHandle !

ZX пишет:
цитата:
Опиши, что ты делаешь, а я попробую найти способ :)


пытаюсь вернуть спёртые команды на место... но в таблицах есть «левые» ячейки с адресами по которым находится нормальный код, а не искуственно созданное аспром исключение.
Вообщем по типу наномитов армовых, там также в таблицах адреса не только спертых jmp’ов, а всех 0СС.

ZX :: Mario555 пишет:
цитата:
Зачем имя ? есть же mHandle !


Ну-ну. Предлагаешь ремоут тред, или ты думаешь что LoadLibrary всегда дает на те же библиотеки одинаковые mHandle?

Mario555 :: ZX пишет:
цитата:
Предлагаешь ремоут тред


??? Я предлагаю
PUSH «адрес строки с именем апи»
PUSH «mHandle библиотеки»
CALL GetProcAddress
На выходе получаем адрес апи. По крайней мере я так делал в процедуре для 00xx7943 и 00xx78E3.

ZX пишет:
цитата:
или ты думаешь что LoadLibrary всегда дает на те же библиотеки одинаковые mHandle?


Упс... :) А вот это я малость не учёл...

бара :: мне одно не понять - как этот долбаный алфаклок с последним аспром распаковали.
Может связаться с теми, кто распаковал или посмотреть сам кряк.

Кто в английском разговорном шарит - спросите. Тут вот вижу суперпродвинутые многие - малины знают и малявы рекомендательные имеют поди на всяких мирках и тп - вызнайте чем репу до плеши расчёсывать и ждать стриппера нового от syd’а...






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS