![]() |
|
|
![]()
|
|
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Вот такая проблема стоит передо мною:
Я делаю программу зажиты от несанкционированного копирования, которая прикрепляет свою процедурку к левому экзешнику, после процедурка в теле защищиамой программы производит различные проверки и если все прошло тип-топ, то передает управлению в точку входа в главную программу. Проблемой стало: Мне надо запомнить в какой-то переменной первоночальную точку входа, что-бы можно было ее вызвать. Например: procedure x; asm @vhod: dd 000000000h и этому @vhod мне надо и записать эту точку. но: procedure xx; ... Написанна на Delphi и туту vhod_ := точка входа И как сделать, что-бы при прикреплении в @vhod содержалось значение vhod_, на которое я мог-бы ссылаться? Мне говорили, что можно сделать так: procedure x; asm .... jmp @xxx @vhod: dd 000000000h mov eax, vhod_ mov dword ptr @vhod, eax @xxx: ... Я попробывал, но оно не работае!!!! Оно ссылаеться просто на точку обьявления @vhod при вызове, а сама переменная @vhod содержит 000000000h Как мне это сделать, подскажите пожайлуста? |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Это описка или нет ? Почему у тебя так:
Надо так:
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Но это всё равно будет не то, т.к. ты ведь эту процедуру прикрепляешь к файлу, и при вызове её она попытается перезаписать @vhod.
Лучше сделай так: procedure x; asm jmp @start @vhod: dd 0 @start: ... end; А когда записываешь процедуру в конец файла, поменяй байты со 2 по 5 (начиная с 0) у записываемой процедуры на адрес точки входа. Или же так, даже будет проще: procedure x; asm // твой код ret или jmp @vhod: end; Т.е. @vhod содержится в конце файла. Тогда ты просто записываешь эту процедурину в EXE, и дописываешь в конец 4 байта vhod_, это как раз попадет на метку @vhod... -------------------- С уважением, г-н Посол. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
вывод:
не мучать попу и писать на асме -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| kostik_16 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Я понял намек на счет
Так кто может помочь?
Как это понять, можно примером обяснить, просто я так не совсем понял?? Я пробывал, но у меня чет не получилось, может не так что-то сделал? |
||||
|
|||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |