Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.21.233.41] |
|
Сообщ.
#1
,
|
|
|
Есть dll (ест-но без исходников)
В ней есть функция с известным мне именем которая возвращает bool-евское значение(в зависимости есть ли HASP или нет) Можно ли, и как исправить ее(dll) чтобы она всегда возвращала true; Объясните пожалуйста поподробнее если не трудно или дайте ссылку ... Заранее спасибо !!! |
Сообщ.
#2
,
|
|
|
А нашо оно тебе надобно, якшо оно возвращает усегда TRUE???
|
Сообщ.
#3
,
|
|
|
Чтобы отучить ее от hasp`a
|
Сообщ.
#4
,
|
|
|
Ну и зачем ее от ентого отучать?
З.Ы. Чего ты сделать все-таки хочешь?, зачем в DLL менять? |
Сообщ.
#5
,
|
|
|
можно:)
надоть дизассемблировать твою длл, найти место, где она рповеряет, и заменить это нужным куском кода (0x75 вместо 0x74 или 0x90 вместо всего подряд.) подробнее см www.reversing.net |
Сообщ.
#6
,
|
|
|
Привет Давненько не виделись ;)
Вообщем я пользовался такой технологией: сначала определяешь, где физически находится функция в DLL-модуле (т.е. ее адрес в файле). Потом залезаешь в файл hiew'вером (тот, который hiew), переходишь на этот адрес и вставляешь туда две инструкции - mov eax, 1 и ret. ;D Правда, я думаю, те кто ставил защиту - не дураки - и защиту от этого дела поставили. |
Сообщ.
#7
,
|
|
|
Настроение отЦтой, так что буду злым...
Какая вам разница, для чего это ему? Надо прогу вскрякнуть, но не умеет человек... А вам "для чего, для чего"... Я ответа не знаю, но думаю, что надо дизасьмить и менять одну строку (строку возврата)... |
Сообщ.
#8
,
|
|
|
хе, надо тогда еще позаботится о том, чтобы парамы были правильно из стека выгружены:)
кстати, исчо просче это вывзо функции заменить на mov eax,1 только тоже надо на парамы смотреть. а по поводу Цитата не дураки - и защиту от этого дела поставили не так давно видел в нете статью (какой-то кракер писал), что современные разработчики все очень потупели, прстой правкой трех байтов большинство программ патчаться, самая крутая защита - навешивание ASPACK'a конечно, не все разрабочики такие, и для профессионально крякера может действительно все легко, но все же счас о-о-очень много прог можно так вскрыть:) |
Сообщ.
#9
,
|
|
|
Если тебе надо программно, можно попробовать сделать HOOK на эту функцию. Для Win9x легко, а для WinNT/2K, тоже можно, но я не делал, поищи в инете, например на codeguru.com или на codeproject.com
|
Сообщ.
#10
,
|
|
|
Цитата SUnteXx, 28.06.02, 01:07:06 Настроение отЦтой, так что буду злым... Какая вам разница, для чего это ему? Надо прогу вскрякнуть, но не умеет человек... А вам "для чего, для чего"... Я ответа не знаю, но думаю, что надо дизасьмить и менять одну строку (строку возврата)... мне кажется, что не так просто. тута речь шла тока об одном методе, которые возвращает TRUE или FALSE. ну вернул ты TRUE. но и что из того? внутренняя логика то не поменялась наверное. можно вообче не вызывать эту функцию, если ее назначение вернуть тока булевое значение. взял и сам своей переменной присвоил TRUE. другое дело, если функция должна вернуть некий объект. тогда я очень сильно сомневаюсь, что простая подмена булевой переменной помогет. и вообче, есть куча других методов в dll. каждая из них как то проверяет чтото. мне кажется, что внутри dll есть некая защищенная переменная, которая показывает, легальный хасп или нет. а метод просто возвращает копию этой переменной, а не указатель. вот если бы найти эту переменную и поменять ее-совсем другое дело. |
Сообщ.
#11
,
|
|
|
Цитата а метод просто возвращает копию этой переменной, а не указатель. вот если бы найти эту переменную и поменять ее-совсем другое дело. Для этого и пременяются hooks. |
Сообщ.
#12
,
|
|
|
А может врапер написать а из него вызывать все функции из настоящей DLL просто в нужной возвращать TRUE
|
Сообщ.
#13
,
|
|
|
Цитата the_moon, 28.06.02, 18:58:26 А может врапер написать а из него вызывать все функции из настоящей DLL просто в нужной возвращать TRUE Да, нормальная идея, а на все дручие функции поставить заглушки (переходники) на нормальные, а параметры можно угадать с помощью Depends'a (по кол-ву байт) |