Посл.ответ |
Сообщение |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 11:16 · Личное сообщение · #1
Доброго времени суток, уважаемые знатоки реверс-инженеринга!
Против Вас играет... хе-хе, вообщем-то ни кто здесь против Вас не играет.
Недавно, дизассемблируя одну из стандартных виндовых библиотек я наткнулся на интересную, недокументированную вещь (ну, по крайней мере в ИНете документации по этой теме я почти не нашел). В голове промелькнула мысль - почему бы не использовать эту фишку при создании защит?
И я написал свой первый CrackMe... Зная, что здесь к CrackMe от людей с малым количеством постов (к коим я принадлежу) относятся с подозрением, хотелось бы заверить особо осторожных, погоревших на "творениях" от "продвинутых" кулхацкеров (видел я тут на форуме пару топиков - то файловую систему затрут, используя чистый копипаст чужого кода, то еще что) - ни чего вредоносного в моем коде нет, за свои слова я отвечаю. Любителей "занозить" тоже хочу обломать - протектор писать я не собираюсь и выкладываю "сиё творение" просто так, а не для того, чтобы за Ваш счет протестировать устойчивость защиты (да и о какой устойчивости может идти речь - мне кажется для взлома потребуется не больше получаса, тем более, что размер файла всего 4 кб. - писалось все это дело на ассемблере).
Собственно, писалось оно не для того чтобы ломать было сложнее, а для того, чтобы процесс исследования доставил как можно больше удовольствия. Не знаю только на сколько хорошо это у меня вышло. Судить Вам. У CrackMe есть одно ограничение - писался он (или она/оно, как угодно ;) под WinXP и на других ОСях не тестировался. Ни каких ограничений по правилам взлома, естественно, нет. Хотите - кейгенте, хотите - патчите, дело вкуса, главное чтобы по нажатию кнопки "ОК" высветилась надпись "REGISTERED".
Аттачить ни чего сюда не стал, взять можно здесь: twister.orgfree.com/other/crackme.rar
Надеюсь что кому-нибудь это будет интересно...
| Сообщение посчитали полезным: |
|
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 14 июня 2007 11:19 · Личное сообщение · #2
www.orgfree.com./images/no.gif
Bad request
Не открывается.
| Сообщение посчитали полезным: |
 Ранг: 282.8 (наставник), 24thx Активность: 0.26↘0 Статус: Участник win32.org.ru
|
Создано: 14 июня 2007 11:21 · Поправил: Guru_eXe · Личное сообщение · #3
Twister пишет:
Аттачить ни чего сюда не стал, взять можно здесь: http://twister.orgfree.com/other/crackme.rar http://twister.orgfree.com/other/crackme.rar
Некачается чета
add: незаметил предыдущий пост
----- may all your PUSHes be POPed! | Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 11:22 · Личное сообщение · #4
Да, я заметил что через браузер не хочет. А вот менеджером закачек (Flash/ReGet) легко. Ну да ладно, лучше в аттач. 4867_14.06.2007_CRACKLAB.rU.tgz - crackme.rar
| Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 11:35 · Поправил: SWR · Личное сообщение · #5
Под висту не фурычит
Хотябы левый импорт прикрутил
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 11:42 · Личное сообщение · #6
Левый импорт не спасет - чтоб заработал на Висте нужно писать под Висту ;)
| Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 11:54 · Личное сообщение · #7
да. крякми интересная, без отладчика сложновато разобратся (нужны смещения).
хотя полно антитросировачных метод.
А сервиспак в ХР какой нужон?
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 14 июня 2007 12:24 · Личное сообщение · #8
Что-то всех на одно и то же попёрло. Уже ставший классикой метод бг - смешиваем имя и пароль, получаем некий указатель, по которому вызывается процедура. Принципиально нового ничего нету =(
Для себя - полезно, для народа - извините.
Про недокументированную функцию я не очень понял - разбор таблиц импорта библиотек вручную что ли?
SWR пишет:
хотя полно антитросировачных метод.
Ну договорились же писать по-русски  Только трюк с IsDebuggerPresent.
SWR пишет:
А сервиспак в ХР какой нужон?
У меня 2-й, работает.
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 12:43 · Поправил: Twister · Личное сообщение · #9
Про недокументированную функцию я не очень понял - разбор таблиц импорта библиотек вручную что ли?
Нет конечно. Ищите - колоться пока не буду. Необходимо найти то место, где считывается РегКод и обрабатывается.
А вот трюка с IsDebugPresent нет, просто мен кажется это совсем уж примитив.
| Сообщение посчитали полезным: |
Ранг: 74.4 (постоянный) Активность: 0.05↘0 Статус: Участник
|
Создано: 14 июня 2007 13:00 · Личное сообщение · #10
Twister пишет:
А вот трюка с IsDebugPresent нет, просто мен кажется это совсем уж примитив.
Так нафига этот примитив было пихать в крякмис, типа показать что ты знаеш примитив?
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 14 июня 2007 13:02 · Личное сообщение · #11
7C7011F6 6A 20 PUSH 20
7C7011F8 C12424 08 SHL DWORD PTR SS:[ESP],8
7C7011FC 830424 20 ADD DWORD PTR SS:[ESP],20
7C701200 C12424 10 SHL DWORD PTR SS:[ESP],10
7C701204 812C24 9493FFFF SUB DWORD PTR SS:[ESP],FFFF9394
7C70120B 83EC 04 SUB ESP,4
7C70120E C70424 00003332 MOV DWORD PTR SS:[ESP],32330000
7C701215 C12C24 10 SHR DWORD PTR SS:[ESP],10
7C701219 810C24 00002E64 OR DWORD PTR SS:[ESP],642E0000
7C701220 83C4 FC ADD ESP,-4
7C701223 C70424 00000050 MOV DWORD PTR SS:[ESP],50000000
7C70122A C12C24 04 SHR DWORD PTR SS:[ESP],4
7C70122E 810C24 00000070 OR DWORD PTR SS:[ESP],70000000
7C701235 C12C24 04 SHR DWORD PTR SS:[ESP],4
7C701239 810C24 00000030 OR DWORD PTR SS:[ESP],30000000
7C701240 C12C24 04 SHR DWORD PTR SS:[ESP],4
7C701244 810C24 00000070 OR DWORD PTR SS:[ESP],70000000
7C70124B C12C24 04 SHR DWORD PTR SS:[ESP],4
7C70124F 810C24 00000050 OR DWORD PTR SS:[ESP],50000000
7C701256 C12C24 04 SHR DWORD PTR SS:[ESP],4
7C70125A 810C24 00000060 OR DWORD PTR SS:[ESP],60000000
7C701261 C12C24 04 SHR DWORD PTR SS:[ESP],4
7C701265 810C24 00000020 OR DWORD PTR SS:[ESP],20000000
7C70126C C12C24 04 SHR DWORD PTR SS:[ESP],4
7C701270 810C24 00000070 OR DWORD PTR SS:[ESP],70000000
7C701277 54 PUSH ESP
классно =]
кейген в аттаче... 547c_14.06.2007_CRACKLAB.rU.tgz - slv.keygen.rar
----- Shalom ebanats! | Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 14 июня 2007 13:07 · Личное сообщение · #12
Вызов Sysenter'а напрямую, без API.
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 13:34 · Личное сообщение · #13
Так нафига этот примитив было пихать в крякмис, типа показать что ты знаеш примитив?
Уважаемый, может тебе дать исходник? Я же сказал, там этого нет!
| Сообщение посчитали полезным: |
Ранг: 161.0 (ветеран) Активность: 0.12↘0 Статус: Участник
|
Создано: 14 июня 2007 13:37 · Личное сообщение · #14
SLV молодец!
В кейгене взят участок кода 7С7016D5 - 7C7016E8..
А так все нормально смотрится в виндасме
| Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 13:40 · Личное сообщение · #15
А сдвиг адреса возврата например? (или это не антитросировка?)
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 14 июня 2007 13:45 · Личное сообщение · #16
SWR, чтото типа...
call @F
db 68h
jmp @1
@F:
inc [esp]
ret
@1:
это просто гавнокод... хз может кому и антитрейс... =]
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 13:51 · Личное сообщение · #17
Ну для профи сложно придумать чето ценное.
А для начинающих нормально.
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 13:54 · Личное сообщение · #18
Да, как я и предполагал, CrackMe на полчаса.
А кто-нить дошел до сути, т.е. как (примерно) все это чудо работает?
Например, откуда процедура генерации пароля выуживает имя пользователя и пароль?
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 14 июня 2007 14:08 · Поправил: SLV · Личное сообщение · #19
Twister,
к чему вопрос?
.text:7C701385 lea eax, [ebp-100h]
.text:7C70138B
.text:7C70138B loc_7C70138B: ; DATA XREF: .text:7C70156Co
.text:7C70138B push eax
.text:7C70138C push 1004
.text:7C701391 push dword ptr [ebp+8]
.text:7C701394 call ds:pGetDlgItemTextA
.text:7C70139A test eax, eax
.text:7C70139C jz loc_7C701482
.text:7C7013A2 push 256
.text:7C7013A7 lea eax, [ebp-200h]
.text:7C7013AD push eax
.text:7C7013AE push 1005
.text:7C7013B3 push dword ptr [ebp+8]
.text:7C7013B6 call ds:pGetDlgItemTextA
.text:7C7013BC test eax, eax
.text:7C7013BE jz loc_7C7014AE
читает и проверяет... и там процедура проверки скорее чем генерации... и ошибка в том что адрес GoodBoy используется в подсчётах... убрать его из edi и было бы сложнее... пришлось бы анализировать код...
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 14:14 · Личное сообщение · #20
Не верно! Но близко.
.text:7C7013B6 call ds:pGetDlgItemTextA
Да, это обращение к тексту в EditBox-е, но к процедуре проверки оно не имеет прямого отношения. Соль не в этом.
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 14 июня 2007 14:16 · Личное сообщение · #21
Twister, чё ты гонишь... смотри мой кейген... соль... я в шоке... теперь просто закейгенить мало ещё надо собрание сочинений прикрепить к нему и мегареспект автору... ппц
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 14:16 · Личное сообщение · #22
Добавлю:
Недокументированная фишка, состоит в том, чтоб писать и, что важно, читать заголовки и классы окон в обход АПИ (SysCall'ы тут не причем).
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 14:18 · Личное сообщение · #23
Не, кейген пашет на ура. Ни кто и не сомневался в компетентности наших крякеров.
Но ведь просто сломать не совсем интересно, интересней понять как оно работает. Я не прав?
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 14 июня 2007 14:19 · Личное сообщение · #24
Twister, не будем разводить оффтоп...
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 14:21 · Личное сообщение · #25
Это для всех окон или тока для Edita (или что там)
| Сообщение посчитали полезным: |
Ранг: 11.1 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 14 июня 2007 14:39 · Личное сообщение · #26
SLV
Не будем.
SWR
Заголовок окна и текст в окне разные вещи. А так вообще для всех.
| Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 14 июня 2007 15:01 · Личное сообщение · #27
я знаю ))))
(но для некоторых они равны (так заделаны))
| Сообщение посчитали полезным: |