Сейчас на форуме: zds, -Sanchez- (+8 невидимых)

 eXeL@B —› Протекторы —› Hard Drive Inspector 2.80
Посл.ответ Сообщение


Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 26 марта 2008 16:19
· Личное сообщение · #1

На прогу сверху был навешан Aspr. Прот снял стриппером. Ок триальность пропала, но по прежнему пишет прога не зарегена. Посмотрев прогу понял что ключик лежит в реестре, но бряк на строку Software\AltrixSoft\Hard Drive Inspector\ так и не срабатывает .
В папке res лежат dll'ки c зануленым EP. Я так понял они нужны только как носители ресурсов и больше в них ничего нет.

В общем 2 часа провозился, так и не понял за что зацепиться при чтении ключа из реестра И как искать места загрузки той или иной строки из ресурсов этих волшебных дллок.

Вот если кому интересно сделал минимальный комплект в 1.14 Мб.
hexcsl.com/upload/stats/877

-----
Computer Security Laboratory




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 26 марта 2008 16:38 · Поправил: SaNX
· Личное сообщение · #2

Скорее всего, прога юзает аспровые моды. И, соответственно, обращение к ключу происходит при навешенном аспре. Если ключ валидный - то прога запускает другой мод, и ОЕП при этом должен быть другой, по идее.

-----
SaNX





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 26 марта 2008 16:48
· Личное сообщение · #3

SaNX
Тоесть тут вариант только один: искать ключ?
И уже с ключом распаковывать?

-----
Computer Security Laboratory




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 26 марта 2008 17:03
· Личное сообщение · #4

промониторь. если обращение к реестру есть при навешанном аспре, то значит только ключ искать.

-----
SaNX




Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 26 марта 2008 17:35
· Личное сообщение · #5

[HEX]
а попробуй скриптом от VolX он вроде фиксит Aspr API, если там они юзаются для проверки регистрациии + нет пошифрованных кусков, то думаю ключ не понадобится.



Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 26 марта 2008 18:16
· Личное сообщение · #6

Может PE_Kill прояснит ситуацию...

-----
SaNX





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 26 марта 2008 18:38 · Поправил: [HEX]
· Личное сообщение · #7

SaNX
Обращение к лючу точно есть даже после снятия прота. Каким макаром ума не приложу Железный бряк на начало функции проверки ключа в реестре не останавливает прогу.

RSI
Скрипт 2.2s распаковал прогу, но почему втихоря на Exit выходит после распаковки =\ Былоб конечно информативно еслиб скрипт написал где именно и какую именно он поправил API прота, а то в логе чето ничего толком не понятно кроме оеп и импорта.

Если что вот упакованый exe проги.
hexcsl.com/upload/stats/878 - 800 Кб с чем то

-----
Computer Security Laboratory




Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 26 марта 2008 19:13
· Личное сообщение · #8

кароче я нашел где триал лежит:

MOV EAX,DWORD PTR DS:[60D5AC]

вот по этому адресу лежит указатель на структуру, типа:

struct Trial
{
DWORD IsExpired;
DWORD Days;
}

вот и сделать нужно чтобы IsExpired >= 1 и Days можно сделать = 30.



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 26 марта 2008 19:29
· Личное сообщение · #9

особенно потом радуют такие строчки:

00431E17 > A1 ACD56000 MOV EAX,DWORD PTR DS:[60D5AC]
00431E1C . 8378 04 00 CMP DWORD PTR DS:[EAX+4],0
00431E20 . 7F 21 JG SHORT HDInspec.00431E43
00431E22 . 68 287D5B00 PUSH HDInspec.005B7D28 ; UNICODE "ASProtect::ASPInfo.iTrialDaysLeft <= 0"
00431E27 . 68 DC7B5B00 PUSH HDInspec.005B7BDC ; UNICODE "OnCreate"
00431E2C . 68 A0785B00 PUSH HDInspec.005B78A0 ; UNICODE "MainFrm.cpp"




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 26 марта 2008 19:47 · Поправил: [HEX]
· Личное сообщение · #10

RSI
С триалом я уже и сам разобрался. Создал секцию по аналогии с выделеной протом, заполнил структуру тоже по аналогии как было под протом. Вроде теперь пускается и размерчик получился поменьше чем после стриппера. Но вопрос по поводу чтения ключа всеже остался открытым

Угу строчки видать автор зафигачил для отладки. Если что рухнуло, то пишется в файлик и файлик потом типа мылом высылают. Ну и автору сразу понятно в каком месте упало. Лучше бы автор такой коммент поставил на месте проверки ключа Чтобы мне было проще искать.

И еще вот непонятный момент: после распаковки (хоть скриптом, хоть стриппером) почему то прога перестает видеть винты (тоесть скорей всего не общается со службой HDDsvc или не грузит HDDinfo.dll).

-----
Computer Security Laboratory





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 26 марта 2008 21:29 · Поправил: [HEX]
· Личное сообщение · #11

Где то я лоханулся Прога после снятия прота не лезет в реестр за ключом! Значит проверка всеже проходит спомощью функций прота и нужно пофиксить чтобы все время выдавало True если скрипт этого еще не сделал ? Если да, то как найти АПИшку проверки ключа? =

P.S. Юзал старый какой то скрипт от VolX 2.2s. Сейчас слил свежий 1.13e и скрипта нашла АПИшку одну GetRegistrationInformation и пропатчила, только толку всеравно нет =\

-----
Computer Security Laboratory





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 27 марта 2008 00:17
· Личное сообщение · #12

В общем ясно... посмотрел в ранние ломаные версии и понял что без ключа делать нечего =\ Так как там кусок кода отвечающий за полнофункциональность пошифрован. И без ключа там обычный длинный джамп через мусор. Если удасться переписать пошифрованый код по аналогии со старой версии, то будем считать что прокатило =\

-----
Computer Security Laboratory





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 27 марта 2008 00:33
· Личное сообщение · #13

Ключ читает сам аспр, нет аспра - нет обращений. Да и к чему их мониторить, рега полностью там аспровая. Кода там дохрена пошифровано. А для отлома достаточно пофиксить аспр апи.

RSI пишет:
struct Trial
{
DWORD IsExpired;
DWORD Days;
}


Структура не верна. Там
DWORD DaysLeft
DWORD DaysTotal

RSI пишет:
вот и сделать нужно чтобы IsExpired >= 1 и Days можно сделать = 30.

Конкретно здесь этого может и достаточно, но правильно делать DaysLeft=1 DaysTotal=1 так аспр делает при зареганости и некоторые программы это проверяют.

SaNX пишет:
Если ключ валидный - то прога запускает другой мод, и ОЕП при этом должен быть другой, по идее.

Прога не может управлять модами, нет таких средств у аспра. Аспр сам устанавливает мод, прописаный в ключе. ОЕП никак не зависит от мода, от мода зависит какие куски кода расшифруются и будет ли программа зависить от времени работы.

-----
Yann Tiersen best and do not fuck





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 27 марта 2008 00:49
· Личное сообщение · #14

PE_Kill
К сожелению в данном примере DaysLeft=1 DaysTotal=1 не достаточно Куски кода сами по себе не расшифруются... ладно будем юзать то что в инете валяется.

Всем огромное спасибо за помощь. Топик закрываю.

-----
Computer Security Laboratory



 eXeL@B —› Протекторы —› Hard Drive Inspector 2.80
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати