Сейчас на форуме: vsv1, _MBK_ (+4 невидимых)

 eXeL@B —› Вопросы новичков —› 2nd level crackme_asm
Посл.ответ Сообщение


Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 16 июля 2007 22:32
· Личное сообщение · #1

скачал с crackmes.de... гружу эт дело в Иду и та часть кода, которая исполняется определяется как данные...

... .text:00402E68 dd 78C0FC0h, 0F000000h, 18Dh, 0CF0F4A00h, 1EBCF0Fh, 0F5850F2h
.text:00402E68 dd 0FFFE2380h, 1D810FFFh, 50FFFFFEh, 1E8h, 1E83200h, 0A8000000h
.text:00402E68 dd 4244483h, 24048312h, 0E908C30Ah, 0FFFFFEE2h, 3D2B931Eh
.text:00402E68 dd 37DD3732h, 1E68406Ah, 68004050h, 405034h, 0E80875FFh
.text:00402E68 dd 590h, 406A36EBh, 40501E68h, 50266800h, 75FF0040h, 57AE808h
.text:00402E68 dd 20EB0000h
.text:004031D8 #здесь уже код

а дебаггер грит что по адресу 4031D7 есть условный переход(
вобщем нужно помочь заставить ИДУ передумать по поводу этого места. Ну или если это вовсе и не требуется предложить что-нибудь более умное)))
солв крякмиса просьба не кидать)))


e6a3_16.07.2007_CRACKLAB.rU.tgz - crackme_1.exe

-----
Researcher




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

Создано: 17 июля 2007 07:21
· Личное сообщение · #2

overwriter
Ну так преобразуй в код. (кнопка "с")



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 17 июля 2007 07:27 · Поправил: Sturgeon
· Личное сообщение · #3

Выделяешь кусок и нажимаешь "C". Данные должны преобразоваться в код. Это то, что нужно?
Опередили




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 17 июля 2007 13:46
· Личное сообщение · #4

Но она не перестраивает граф( Это можно как то исправить? И раз уж про ИДУ, можно где нить руководство скачать (практическое). Есть у кого нить ссыль на Образ мышления ИДА в электронном варианте.

-----
Researcher




Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 17 июля 2007 14:56
· Личное сообщение · #5

overwriter
Это тебе для перексрестных ссылок? В Оле есть такой поиск. Правой кнопкой по интересующей тебя команде Find references to->Selected command.
З.Ы. Про книги вот топик. Рабочие или нет там ссылки не проверял.
http://www.exelab.ru/f/action=vthread&forum=1&topic=591




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 17 июля 2007 19:17
· Личное сообщение · #6

Да про Олю то понятна... мне в Иде граф перестроить... ну что нить типа там реаналайз, но такое кнопки в упор не вижу... слепой наверна) лана вкуриваю литературу...

-----
Researcher




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

Создано: 31 июля 2007 12:11
· Личное сообщение · #7

Судя по бредовому коду программа может быть зашифрована. В этом случае прямое преобразование в код ничего не даст. Так что вероятно нужно искать распаковщик, ну а потом писать скрипт для Иды и усе. Надо попробовать



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

Создано: 31 июля 2007 13:57
· Личное сообщение · #8

там ключ в открытом виде лежит, да и лвл крякми - 2...
вывод: какое зашифровано???

-----
Я ещё не волшебник, я только учусь...




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

Создано: 01 августа 2007 10:25
· Личное сообщение · #9

А что, одно другому мешает? Пусть строки лежат открытым текстом, зато половина кода - бред сивой кобылы. А вопрос, насколько я понял, был в том, как заставить Иду именно код опознать. Вот пусть и опознает - причем здесь открытый ключ?



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

Создано: 02 августа 2007 09:24
· Личное сообщение · #10

Я смотрел на эту лабуду. Там просто после каждой инструкции (почти) лежит один левый байтик , вот и проблема в дизассемблировании. Т.е в принципе видишь настоящюю инструкцию только при выполнении (оффлайн дизасмы отдыхают). Но правда есть участки, где всё нормально. И очень часто проверяется, сколько ЦПУ потребовалось тактов на выполнение определённого фрагмента. Вобщем если хочешь трассировать, приходится постоянно править флаги, ато уйдёшь в никуда .



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

Создано: 02 августа 2007 09:55
· Личное сообщение · #11

Мне кажется на прямую увидеть весь код не получится. Посудите сами,
Вот так должно быть:

004011f1 e801000000 call image00400000+0x11f7 (004011f7)
004011f6 ea
004011f7 e801000000 call image00400000+0x11fd (004011fd)
004011fc 08


Когда дизасмишь с адреса 004011f1, то на следующем адресе видишь вот что:

004011f6 eae80100000008 jmp 0800:000001E8

А если дизасмить с адреса 004011f7, с которого и будет дальше продолжаться выполнение кода, то получится совсем другая инструкция. Т.е наш левый байт "еа" превращает последующие байты в левую инструкцию, которая всё равно не будет выполняться.

Имхо предугадать следующие действия сложновато.

Интересно, а кому не лень было такое писать?



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 02 августа 2007 11:13
· Личное сообщение · #12

SeaMan пишет:
Мне кажется на прямую увидеть весь код не получится

А оно и не надо. Я взломал так:
После того как открыл файл в Оле Ищешь строки "Correct serial"


004031AC PUSH 40
004031AE PUSH crackme_.0040501E ; ASCII "halsten"
004031B3 PUSH crackme_.00405034 ; ASCII "Correct Serial!"
004031B8 PUSH DWORD PTR SS:[EBP+8]
004031BB CALL <JMP.&user32.MessageBoxA>


Нажимаешь Ctrl+A и быстренько "пробел". Выделяешь строку 4031АС. Правой кнопкой Find references to->Selected command. Исмотришь откуда идет переход на сообщение о правильном номере.



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

Создано: 02 августа 2007 11:33
· Личное сообщение · #13

Sturgeon Круто! В принципе смысл понятен.

Но у меня это не пролезет. Я пользуюсь WinDbg и ещё не очень его хорошо знаю . Наверняка есть аналогичные команды.
А откуда ты в этом примере знал что должен быть текст "Correct serial"? Или автор об этом написал?
Я имею ввиду что там могло бы быть всё что угодно написанно. Но так как там всё равно это лежит открыто, то само нахождение сериала становится не интересным. А вот сам программный код прикольно составлен. Только кто ж в своих программах будет такое применять ?



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 02 августа 2007 12:03
· Личное сообщение · #14

SeaMan пишет:
Я пользуюсь WinDbg

А почему не Олей? Дело конечно твое, но по-моему Оля гораздо приятней и удобней. И все последние туторы именно под нее и пишутся.
Про WinDbg ничего не могу подсказать, так как пользуюсь тольео Олькой.
Про поиск строки ничего сложного нет. В той же Оле выбираешь "найти все строки" и увидишь эту строку, благо там немного строчек.
Либо, можешь найти строку "Wrong serial". Она точно должна быть, автор об этом написал;). Попадешь на код вывода "плохого" сообщения. А чуть выше увидишь код вывода "хорошего".
Чтобы узнать откуда этот код (хорошего сообщения) вызывается надо предпринять те действия, о которых я уже написал. Т.е. правой кнопкой Find references to->Selected command. Единственная заморочка это то, что из-за мусора код неправильно проанализирован и ты даже бряк на строку не сможешь поставить. Вот для этого мы и "переанализируем" код с помощью Ctrl+A.



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

Создано: 02 августа 2007 13:18
· Личное сообщение · #15

Sturgeon
WinDbg я пользуюсь потому что есть версия которая работает под Windows Vista 64-бит а с Ole как я слышал по этому поводу много проблем. Я раньше пользовался SoftIce'ом пока на 98-ых работал. Он мне больше нравился из за 0-го гольца. Потом появился Windows XP, в нём он уже не работал. Сейчас конечно есть уже новые версии которые без проблем работают под ХР но тогда небыло. В WinDbg вроде тоже есть возможность работать в 0-ом кольце используя 2 компа, но я пока мись ещё не доконца разобрался как оно работает (с англицким туговато а описание на русском не могу найти) .
Sturgeon пишет:
Вот для этого мы и "переанализируем" код с помощью Ctrl+A


Теперь понял. Там типа можно выбрать машинный код или место указать с которого оля должна "переанализировать или дизасмить с этого места" и тогда мы увидим правильную инструкцию.
Тока мне кажется что всё равно заморочка. Ведь в вышеуказанном примере следующая инструкция тоже неправильно дизасмится. А таких там куча!

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



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 02 августа 2007 18:30
· Личное сообщение · #16

Блин, не могу понять в чём тут трудности - серийник то тут лежит в открытом виде. Вот я пропатчил сам крякмис, и вуаля - кейген =)

f4ee_02.08.2007_CRACKLAB.rU.tgz - Keygen.rar

-----
все багрепорты - в личные сообщения




Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 02 августа 2007 18:55
· Личное сообщение · #17

Вопрос был про неправильное дизассемблирование и нахождение переходов и ссылок. Это насколько я понял суть вопросов=)



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

Создано: 03 августа 2007 13:35
· Личное сообщение · #18

HandMill Спасибо за пропадченный крякмис. Но как уже сказал Sturgeon, вопрос был не про то как найти серийник. Это я между делом просто спросил как Sturgeon его нашёл.
Кому нужны серийники для крякмисов? Какой толк о крякмиса, если зарание знаешь серийник (разве что для сравнения, какими будут действия программы, если серийник был правильно введён)? Это всё равно, что играть в игру с читами. Движение есть, прогресса нет!

Кстати как я понял что то что спросил overwriter невозможно, что и требовалось доказать. Я с идой не работал, но мне кажется он всё таки такие чудеса с засорённым кодом делать не может. Поправте меня если я неправ.


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


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