Привет. Меня попросили взломать программу, с единственным аргументов -- ты программист) ну вы понимаете. Но дело в том, что я веб-программист и асм для меня тёмный лес. Нет я уже могу взломать лёгкие программы, которые в wasm_ru описываются. Я много чего узнал за эти несколько дней, но уже отчаился. В общем есть программа toko (_tokokz.susu.ac.ru_) для расчёта ТКЗ, хорошая программа, но на огранич. число запусков. Окей когда я прочитал статьи, у меня были идеи, как взломать: 1) там идёт активатор, ну вводите дир. где программа, воодите где ключ, и нажимаете "активировать". Я пробовал повесить breakpoint, но у меня не вышло, хотя вроде делал как в тех статьях. BP нужно было, чтобы посмотреть, что в дампе ну и т.д. в общем вы понимаете лучше меня. 2) Я разобрал этот активатор, и нашёл рег. выражение, ()9999*+-9999. или что-то очень похожее, я быстро составил регулярку и сделал ключ toko.key, нажал активировать ....... и вышло, но дело в том, что когда я попытался запустить программу, она долго запускалась, а потом вылетала. 3) хорошо, подумал я и переустановил программу, (но те разы, когда я запускал, всё равно учит-ся и она запускается всё дольше и дольше). Я попытался посмотреть где читает из реестра данные эта программа, я так понял, что это I/O operation, их куча была, я повесил на каждую по bp, хотя Оли и говорил, что это за пределами кода, но не вышло ничего не остановилось. 4) там написано, что программа будет прибавлять по 1 секунде, пока не будет 50, я подумал, может это 50 зашито, попробовал найти, но нашёл какой-то адрес, но он где используется, вроде ничего не сравнивается. В общем прошу помощи. Спасибо.
удали файл C:\Documents and Settings\Administrator\Local Settings\Application Data\APPSYSTEM.DAT - счетчик триала сбрасывается до 5
патч для полнофункциональной версии (на вид все функции работают, нага с ожиданием при старте вообще нет): Code: 1CEA4Bh 80 3D DC DE 64 00 00 75 -> C6 05 DC DE 64 00 01 EB 1CEA62h 80 3D D8 DE 64 00 00 74 -> C6 05 D8 DE 64 00 00 EB 1CEA77h 80 3D E0 DE 64 00 00 75 -> C6 05 E0 DE 64 00 00 EB 1CEAA4h 75 -> EB
ProTeuS Офигенно! Круто! Большое спасибо, только а вот где второй дамп вставить? или я не правильно понял что-то? Спасибо огромное.
распаковать файл и пропатчить ехе, либо пропатчить непосредственно распакованные в памяти байты (лоадер)
А что делать с новой версией, на том же сайте появилась версия 1.0.1.851-Beta, там файлик APPSYSTEM.dat вообще не создается и активатор теперь встроен в саму программу, без лицензии не дает считать схемы в которых больше 30 элементов. Не могу понять чем она запакована.
описываемая в топике версия была пакована upx'ом. распаковываешь и патчишь по той же схеме, как и описано выше (дизасм и сравнение ехе текущей и новой версии должен помочь решить задачу)
Извините меня за мою глупость, но не могу найти вот это всё 1CEA4Bh 80 3D DC DE 64 00 00 75 -> C6 05 DC DE 64 00 01 EB что такое 1CEA4Bh -- это адрес? 80 3D DC DE 64 00 00 75 вот это нужно заменить на C6 05 DC DE 64 00 01 EB ? правильно? Только я не нахожу этого нигде. Спасибо.
1CEA4B - адрес программы в памяти, 80 3D DC DE 64 00 00 75 - байты, находящие по этому адресу, чуть правее от них находятся соответствующие им ассемблерные команды.Вместе это все составляет часть ассемблерного листинга программы. Если используешь Olly Debugger, то перейти к нужному адресу можно так: Это так же можно сделать проще:
Новые знания не бывают лишними, пусть хоть немного поймет то, что тут пишут.Понимаю, объяснил я не окей, но все же попытался, да и облегчать чужой труд не собирался.Дадим человеку самому попробовать
Да спасибо. Я всё так и делал. Я открыл Олли, затем попытался найти адреса, их не было. Я запустил программу адреса, появились, но их было несколько и они были пустые. То есть там не было связаных с ними команд.
да нет я видел, я на wasm даже статьи читал и взламывал те, что были в статьях, но тут слишком сложно.