Вот собственно кусок из OllyDbg. Это точка входа в EXEш'ник. Что это тут вообще происходит? >006ED001 D02E SHR BYTE PTR DS:[ESI],1 006ED003 0000 ADD BYTE PTR DS:[EAX],AL 006ED005 0000 ADD BYTE PTR DS:[EAX],AL 006ED007 00FF ADD BH,BH 006ED009 FFFF ??? ; Unknown command 006ED00B FF3C ??? ; Unknown command 006ED00D D02E SHR BYTE PTR DS:[ESI],1 006ED00F 00B4D0 2E0008D1 ADD BYTE PTR DS:[EAX+EDX*8+D108002E],DH 006ED016 2E:0000 ADD BYTE PTR CS:[EAX],AL 006ED019 0000 ADD BYTE PTR DS:[EAX],AL 006ED01B 00FF ADD BH,BH 006ED01D FFFF ??? ; Unknown command 006ED01F FFE8 JMP FAR EAX ; Illegal use of register ................... И дальше такой же бред. Как правильно этот код интерпретировать? Это реально рабочее приложение. Только в отладке оно вылетает уже в пятой строке на некорректном операторе. Это защита от отладки такая или еще что? P.S. IDA выдает не менее странный код. Если нужно приведу и его.
Запросто может. К примеру - это запакованные данные, а их распаковка происходит через тлс или в одной из dll, что в импорте. Xerx Без проги тебе вряд ли что-нибудь конкретное ответят.
Xerx Вообщето это больше на данные похоже, или криптованный участок кода, то есть данные. Ты каким отладчиком орудовал ? Попробуй айсом. Возможно, но не скажу, здесь может косвенно устанавливаться SEH, а данные уже расшифровываются с его помощью. Либо, надо просто посмотреть чем инициализированы регистры при старте. Если это оля была, то чем ты ладил, то вот тебе и глюк. Попробуй айсом протрэйсить, либо при начале трэйса самостоятельно инициализировать регистры нужными цифрами. Без самой проги не разобраться.
100% данные, на криптованный код не похоже ) ..D02E00 00000000 FFFFFFFF 3CD02E00 B4DO2E00 08D12E00 00000000 FFFFFFFF E8........
asd Дык тогда точка входа должна все-равно на упаковщик указывать. Системе же надо куда-то управление передать. Относительно SEH - что-то отдаленно похожее на адреса есть, но... Нужна программа однозначно.
crypto Так управление не точке входа первым делом передаётся, и на точке входа всё что угодно быть может. dermatolog И правда очень похоже на данные.
>k3internal >koderr Ну не было меня на форуме! Что кричать-то! Выкладываю саму прогу. xerxde.narod.ru/schematic.rar 1.2M (только один этот exe'шник) Если еще что надо - тоже выложу. А вообще это часть DipTrace. И судя по всему стоит защита от отладки и что-то еще... Пользовался OllyDbg, о чем писал и в названии темы и в ПЕРВОЙ строке поста
точка входа в EXE-шник ajrdybnh:00849B75 public start ajrdybnh:00849B75 start proc near ajrdybnh:00849B75 call sub_849A71 ajrdybnh:00849B7A add eax, 1FE9h ajrdybnh:00849B7F jmp eax ajrdybnh:00849B7F start endp вызывается функция которая: - заказывает память - копирует в эту память 2891h байт с адреса 846С04 - распаковывает их обратно по тому же адресу 846С04 с помощью функции sub_846B90 - освобождает память - модифицирует точку входа в эту функцию (однократный вызов) - выходит после этого конструкция add eax, 1FE9h jmp eax передает управление в этот распакованный код
а ниже расположена функция инициализации TLS (работающая аналогично, только адрес входа в распакованный код другой) Код (Text): ajrdybnh:00849B81 TlsCallback_0 proc near ajrdybnh:00849B81 call sub_849A71 ajrdybnh:00849B86 add eax, 26CBh ajrdybnh:00849B8B jmp eax ajrdybnh:00849B8B TlsCallback_0 endp и первой отрабатывает призапуске она (ниже цитата из http://www.wasm.ru/article.php?article=tls Статическая TLS поддерживает вызов TLS Callback функций для инициализации TLS переменных – то, что довольно часто используют протекторы и вирусы для антиотладки. Например, ExeCryptor располагает код TLS Callback функции, в результате отладчик пролетает EP. Вот и все дабы это впоймать точка останова на 00849B81