Посл.ответ |
Сообщение |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 ноября 2005 14:26 · Личное сообщение · #1
Всем привет!
Вопрос по методике взлома: есть некая программа, генерящая какой-то код регистрации, который необходимо отправить автору программы вместе с уведомлением об оплате, в ответ он присылает ехе-файл, видимо патч, который снимает ограничения при работе программы. И вот вопрос - подобные программы ломаются или надо пол-жизни потратить, чтобы отследить все мыслимые проверки?
Спасибо за ответ.
| Сообщение посчитали полезным: |
|
Ранг: 500.5 (!), 8thx Активность: 0.23↘0 Статус: Участник
|
Создано: 18 ноября 2005 14:30 · Поправил: Smon · Личное сообщение · #2
Lisa
Такого правда пока не видел, но обычно подобные вещи ломаются тривиально.
С криптоалгоритмами эт вряд ли может быть связано, хотя кто знает =)
Если правда это не Hiew, в котором нет несколько килобайт кода =)
----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 ноября 2005 14:52 · Личное сообщение · #3
Да, для более полной информации добавлю, прога написана на Делфи (DeDe в помощь), не упакована.
Три дня уже с ней бьюсь в Olly, ни с начала не подступлюсь, ни с момента вывода сообщения о демо-режиме.
| Сообщение посчитали полезным: |
Ранг: 1131.7 (!!!!), 447thx Активность: 0.67↘0.2 Статус: Участник
|
Создано: 18 ноября 2005 15:18 · Поправил: Gideon Vi · Личное сообщение · #4
Это ведь почти наверняка демка, с отсутвующими кусками кода. Сломать можно, но придётся дописывать эти участки самому, а для этого надо разбираться в работе программы.
не упакована
Вот, значит наверняка экзешник, присылаемый автором, является патчером недостающих участков кода.
| Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 ноября 2005 15:33 · Личное сообщение · #5
Gideon Vi пишет:
Это ведь почти наверняка демка, с отсутвующими кусками кода.
В том то и дело, что прога полнофункциональна, единственное ограничение - размер выходного кода(это компилятор С) , мне кажется, там проверка типа "а не больше ли полученный кусок кода, чем определено в дёме", ну а патч, естественно, призван убирать это ограничение.
Вот и не знаю, откуда начинать.
| Сообщение посчитали полезным: |
Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник
|
Создано: 18 ноября 2005 19:17 · Личное сообщение · #6
Lisa
Можно ли ссылку или что-то типа этого?
Хотя бы название.
Lisa пишет:
ну а патч, естественно, призван убирать это ограничение.
Бред. Если так, то шаровары совсем чокнулись.
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
Ранг: 24.3 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 18 ноября 2005 11:56 · Поправил: Inv · Личное сообщение · #7
-skiped-
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 19 ноября 2005 01:44 · Личное сообщение · #8
Lisa пишет:
откуда начинать
Lisa пишет:
размер выходного кода
Я так понимаю - это константа?
Тогда попробуй поиск всех констант или поиск всех команд CMP EAX,"const"
----- TBR | Сообщение посчитали полезным: |
Ранг: 75.0 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 19 ноября 2005 01:49 · Личное сообщение · #9
Lisa пишет:
И вот вопрос - подобные программы ломаются или надо пол-жизни потратить, чтобы отследить все мыслимые проверки?
А ссылки так наверное и не дождемся...
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 19 ноября 2005 01:56 · Личное сообщение · #10
Rush пишет:
А ссылки так наверное и не дождемся...
От ты скорый! Видишь - человек в 15:33 последний раз отпостил. Жди значит до завтра.
ЗЫ: сорри за офтоп.
----- TBR | Сообщение посчитали полезным: |
Ранг: 75.0 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 19 ноября 2005 02:00 · Личное сообщение · #11
Grey пишет:
От ты скорый!
Да я такой - время есть
ЗЫ: сорри за 2хоффтоп
| Сообщение посчитали полезным: |
Ранг: 748.2 (! !), 390thx Активность: 0.37↘0 Статус: Участник bytecode!
|
Создано: 19 ноября 2005 13:29 · Личное сообщение · #12
Чаще всего в таких случаях в инет выкладываются демки, лишенные кода, который не должен функционировать в полных версиях, а при регистрации юзеру высылается полная версия, которая в процессе инсталляции привязывается к железу (номер харда, например).
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 08:59 · Поправил: Lisa · Личное сообщение · #13
Всем привет!
Сорри, в выходные была в оффлайне.
Bitfry пишет:
Можно ли ссылку или что-то типа этого?
Хотя бы название.
Полный сетап на сайте www.mikroe.com/zip/mikroc/mikroc_210_setup.zip
11Мб
Усечённый вариант тут lisaa4.narod.ru/TEMP1.rar 1.4Мб
Inv пишет:
Ищи вызовы CreateFile/writefile где-то рядом условие сохранять или нет.
Заткнулась вот на чём:
0061A073 |. 8B43 08 MOV EAX,DWORD PTR DS:[EBX+8]
0061A076 |. 8BD0 MOV EDX,EAX
0061A078 |. 81C2 2EFFFFFF ADD EDX,-0D2
0061A07E |. 83EA 02 SUB EDX,2
0061A081 73 6E JNB SHORT mikroc_1.0061A0F1
0061A083 837B 38 00 CMP DWORD PTR DS:[EBX+38],0
0061A087 0F85 83000000 JNZ mikroc_1.0061A110
0061A08D |. 8B43 0C MOV EAX,DWORD PTR DS:[EBX+C]
0061A090 |. 8BD0 MOV EDX,EAX
0061A092 |. 4A DEC EDX
0061A093 |. 83EA 23 SUB EDX,23
0061A096 73 0D JNB SHORT mikroc_1.0061A0A5
0061A0F1 |> 3D 164B0800 CMP EAX,84B16
0061A0F6 75 18 JNZ SHORT mikroc_1.0061A110
0061A0F8 |. 8B43 28 MOV EAX,DWORD PTR DS:[EBX+28]
0061A0FB |. 50 PUSH EAX
0061A0FC |. 68 70A16100 PUSH mikroc_1.0061A170 ; ASCII "Demo limit"
Тут видно, что производится проверка в ЕВХ+8, ЕВХ+38, ЕВХ+С, ЕВХ+28, но дело в том, что ЕВХ расположен в сегменте 014E0000 и при каждом запуске у него разный адрес.
Когда в него производится запись, не могу отследить..
Grey пишет:
размер выходного кода
Я так понимаю - это константа?
Тогда попробуй поиск всех констант или поиск всех команд CMP EAX,"const"
Да, константа 2 Кб. Но , мне кажется, там проверка как см. выше.
4kusNick пишет:
Чаще всего в таких случаях в инет выкладываются демки, лишенные кода, который не должен функционировать в полных версиях, а при регистрации юзеру высылается полная версия, которая в процессе инсталляции привязывается к железу (номер харда, например).
Но прога ведь полностью функциональна, все функции доступны, единственное ограничение - размер компилируемого кода 2 Кб.
Тут сделано так: в форме заполнения генерируется рег. код, у которого меняются только последние 4 цифры если несколько раз заходить в окно заполнения рег. формы, возможно первые цифры отвечают за привязку к железу, а последние возможно связаны либо с временем, либо выбираются случайным образом.
Извините, что не сразу ответила..
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 21 ноября 2005 09:43 · Личное сообщение · #14
Lisa пишет:
Усечённый вариант
Он хоть какой - нить опен/сейв делает?
А то у меня только при открытии выскакивает окно активации, а остальные - как белка об лед.
----- TBR | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 09:55 · Личное сообщение · #15
Grey пишет:
Усечённый вариант
Он хоть какой - нить опен/сейв делает?
А то у меня только при открытии выскакивает окно активации, а остальные - как белка об лед.
Ой, простите меня, не тот файлик указала, уже поправилась в предыдущем сообщении. Нужен Temp1.
Извините, пожалуйста.
| Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 21 ноября 2005 10:09 · Поправил: ValdiS · Личное сообщение · #16
Вот интересный кусочек кода:
006942E0 /$ 53 PUSH EBX
006942E1 |. 56 PUSH ESI
006942E2 |. 57 PUSH EDI
006942E3 |. 55 PUSH EBP
006942E4 |. 83C4 EC ADD ESP,-14
006942E7 |. 8BEA MOV EBP,EDX
006942E9 |. 8BF8 MOV EDI,EAX
006942EB |. C70424 FFFFFFFF MOV DWORD PTR SS:[ESP],-1
006942F2 |. 8B47 5C MOV EAX,DWORD PTR DS:[EDI+5C]
006942F5 |. 8B40 38 MOV EAX,DWORD PTR DS:[EAX+38]
006942F8 |. E8 8B1DD7FF CALL mikroc_I.00406088
006942FD |. 48 DEC EAX
006942FE |. 85C0 TEST EAX,EAX
00694300 0F8C D0000000 JL mikroc_I.006943D6
00694306 |. 40 INC EAX
00694307 |. 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
0069430B |. C74424 04 00000000 MOV DWORD PTR SS:[ESP+4],0
00694313 |> 8B47 5C /MOV EAX,DWORD PTR DS:[EDI+5C]
00694316 |. 8B40 38 |MOV EAX,DWORD PTR DS:[EAX+38]
00694319 |. 8B5424 04 |MOV EDX,DWORD PTR SS:[ESP+4]
0069431D |. 8B3490 |MOV ESI,DWORD PTR DS:[EAX+EDX*4]
00694320 |. 8BC6 |MOV EAX,ESI
00694322 |. E8 C9D4F4FF |CALL mikroc_I.005E17F0
00694327 |. 8BD8 |MOV EBX,EAX
00694329 8BC6 MOV EAX,ESI
0069432B E8 C4D4F4FF CALL mikroc_I.005E17F4
00694330 |. 8D541D 00 |LEA EDX,DWORD PTR SS:[EBP+EBX]
00694334 |. 4A |DEC EDX
00694335 |. 3BC2 |CMP EAX,EDX
00694337 7D 1C JGE SHORT mikroc_I.00694355
00694339 |. 6A 00 |PUSH 0
0069433B |. 68 EC436900 |PUSH mikroc_I.006943EC ; ASCII "Routine too large"
00694340 |. 6A 00 |PUSH 0
00694342 |. B9 01000000 |MOV ECX,1
00694347 |. 33D2 |XOR EDX,EDX
00694349 |. 8BC7 |MOV EAX,EDI
0069434B |. E8 68CAFFFF |CALL mikroc_I.00690DB8
00694350 |. E9 81000000 |JMP mikroc_I.006943D6
00694355 |> C64424 08 00 |MOV BYTE PTR SS:[ESP+8],0
0069435A |. EB 4A |JMP SHORT mikroc_I.006943A6
0069435C |> 8D4424 0C |/LEA EAX,DWORD PTR SS:[ESP+C]
00694360 |. 50 ||PUSH EAX
00694361 |. 8D4C1D 00 ||LEA ECX,DWORD PTR SS:[EBP+EBX]
00694365 |. 8BD3 ||MOV EDX,EBX
00694367 |. 8BC7 ||MOV EAX,EDI
00694369 |. E8 D2090000 ||CALL mikroc_I.00694D40
0069436E |. 84C0 ||TEST AL,AL
00694370 |. 74 23 ||JE SHORT mikroc_I.00694395
00694372 |. 8B47 5C ||MOV EAX,DWORD PTR DS:[EDI+5C]
00694375 |. 8BD3 ||MOV EDX,EBX
00694377 |. E8 54D2F4FF ||CALL mikroc_I.005E15D0
0069437C 8BF0 MOV ESI,EAX
0069437E |. 8D541D 00 ||LEA EDX,DWORD PTR SS:[EBP+EBX]
00694382 |. 8B47 5C ||MOV EAX,DWORD PTR DS:[EDI+5C]
00694385 |. E8 46D2F4FF ||CALL mikroc_I.005E15D0
0069438A |. 3BF0 ||CMP ESI,EAX
0069438C 75 2E JNZ SHORT mikroc_I.006943BC
0069438E |. C64424 08 01 ||MOV BYTE PTR SS:[ESP+8],1
00694393 |. EB 27 ||JMP SHORT mikroc_I.006943BC
00694395 |> 3B5C24 0C ||CMP EBX,DWORD PTR SS:[ESP+C]
00694399 |. 7D 0A ||JGE SHORT mikroc_I.006943A5
0069439B |. FF4424 0C ||INC DWORD PTR SS:[ESP+C]
0069439F |. 8B5C24 0C ||MOV EBX,DWORD PTR SS:[ESP+C]
006943A3 |. EB 01 ||JMP SHORT mikroc_I.006943A6
006943A5 |> 43 ||INC EBX
006943A6 |> 8BC6 | MOV EAX,ESI
006943A8 |. E8 43D4F4FF ||CALL mikroc_I.005E17F0
006943AD |. 3BD8 ||CMP EBX,EAX
006943AF 7C 0B JL SHORT mikroc_I.006943BC
006943B1 8BC6 MOV EAX,ESI
006943B3 E8 3CD4F4FF CALL mikroc_I.005E17F4
006943B8 |. 3BD8 ||CMP EBX,EAX
006943BA |.^ 7E A0 |\JLE SHORT mikroc_I.0069435C
006943BC |> 807C24 08 00 |CMP BYTE PTR SS:[ESP+8],0
006943C1 |. 74 05 |JE SHORT mikroc_I.006943C8
006943C3 |. 891C24 |MOV DWORD PTR SS:[ESP],EBX
006943C6 |. EB 0E |JMP SHORT mikroc_I.006943D6
006943C8 |> FF4424 04 |INC DWORD PTR SS:[ESP+4]
006943CC |. FF4C24 10 |DEC DWORD PTR SS:[ESP+10]
006943D0 |.^ 0F85 3DFFFFFF \JNZ mikroc_I.00694313
006943D6 |> 8B0424 MOV EAX,DWORD PTR SS:[ESP]
006943D9 |. 83C4 14 ADD ESP,14
006943DC |. 5D POP EBP
006943DD |. 5F POP EDI
006943DE |. 5E POP ESI
006943DF |. 5B POP EBX
006943E0 \. C3 RETN
Кстати, регистрация программы хранится в файле mikroC.key, который должен находиться в каталоге программы.
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 10:50 · Личное сообщение · #17
ValdiS пишет:
0069433B |. 68 EC436900 |PUSH mikroc_I.006943EC ; ASCII "Routine too large"
Если ты об этом, то это документированное ограничение проги, не позволяющее отдельной подпрограме в создаваемом файле С быть больше 2Кб. Но это не имеет отношения к демо-режиму и к размеру выходного файла.
ValdiS пишет:
Кстати, регистрация программы хранится в файле mikroC.key, который должен находиться в каталоге программы.
А вот это действительно интересно, но, боюсь, чтобы раскрутить алгоритм потребуется намного больше времени, чем просто пропатчить.
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 21 ноября 2005 12:53 · Личное сообщение · #18
Lisa пишет:
Нужен Temp1.
А линка на Setup.exe
Причем - тот-же.
----- TBR | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 13:19 · Поправил: Lisa · Личное сообщение · #19
Grey пишет:
Нужен Temp1.
А линка на Setup.exe
Извини, всё - поправила.
Да, вот готовые проекты для проги:
где всё Success - lisaa4.narod.ru/proWork.rar 1.6Кб
и с выходящим сообщением, что демо - lisaa4.narod.ru/proNoWork.rar 1.6Кб
Для второго размер выходного кода превышает 2Кб...
| Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 21 ноября 2005 13:36 · Поправил: ValdiS · Личное сообщение · #20
Попробуй подправить
0061A0F1 3D 164B0800 CMP EAX,84B16
на
0061A0F1 3D 582C2100 CMP EAX,212C58
Проверь
Посмотри webfile.ru/645278
Имя файла - mikroc_I.rar , размер 9 Кбайт. Файл будет доступен до 28.11.2005 13:52. Пароль на архив: 12587. Попробуй патчик, вопросы в личку.
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 13:57 · Личное сообщение · #21
ValdiS пишет:
Попробуй подправить
Не-а, не прошло... "демо лимит" перестало появляться, но при увеличении размера Си-программы счётчик процентов размера кода от общего (максимально возможного) размера кода для выбранного контроллера больше 25% не показывает, и выходной код оказывается нерабочим
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 21 ноября 2005 14:11 · Поправил: Grey · Личное сообщение · #22
Lisa пишет:
с выходящим сообщением, что демо
При каких обстоятельствах оно должно появляться?
ValdiS
А у тебя чо там?
----- TBR | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 14:19 · Личное сообщение · #23
Grey пишет:
При каких обстоятельствах оно должно появляться?
Это сообщение появляется, если при компиляции Си-программы размер выходного кода превышает 2Кб.
Я поначалу пробовала по адресу 0061A0F6 заменить условный переход на безусловный- но увы Также сообщение пропадает, но в строке "размер вых.кода" там пишет 2069 (чуть больше 2К) 25%.
| Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 21 ноября 2005 14:39 · Личное сообщение · #24
Lisa
А патч проверила? Хотя там почти тоже самое...
Grey
Патч по адресам: 0061A0F1 и 0061DE25. Но видимо не помогло...
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 14:51 · Личное сообщение · #25
ValdiS пишет:
А патч проверила? Хотя там почти тоже самое...
Там только обходится вывод недоброго сообщения..
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 21 ноября 2005 15:04 · Поправил: Grey · Личное сообщение · #26
Lisa пишет:
Там только обходится вывод недоброго сообщения..
А что должно быть при удачном исходе?
----- TBR | Сообщение посчитали полезным: |
Ранг: 420.3 (мудрец) Активность: 0.24↘0 Статус: Участник
|
Создано: 21 ноября 2005 15:10 · Личное сообщение · #27
Lisa
Намек ясен, буду смотреть глубже...
Кстати, proNoWork сколько должен занимать реально процентов? Знаешь?
----- Сколько ни наталкивали на мысль – все равно сумел увернуться | Сообщение посчитали полезным: |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 15:11 · Личное сообщение · #28
Grey пишет:
А что должно быть при удачном исходе?
В таком случае надпись "демо лимит" не появляется, выводится "success" и размер выходного кода в байтах и в процентах от максимального для выбранного контролера.
| Сообщение посчитали полезным: |
Ранг: 389.6 (мудрец) Активность: 0.15↘0 Статус: Участник
|
Создано: 21 ноября 2005 15:12 · Поправил: Grey · Личное сообщение · #29 |
Ранг: 6.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 21 ноября 2005 15:13 · Личное сообщение · #30
ValdiS пишет:
Кстати, proNoWork сколько должен занимать реально процентов? Знаешь?
Точно - нет, но больше чем 2069 (в байтах), и больше 25%.
| Сообщение посчитали полезным: |