![]() |
|
|
![]()
|
|
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
kostik_16, API не портит стек, я почти на 100% уверен, что ты используешь регистр EBP, а Delphi компилирует обращение к локальным var-переменным через EBP.
Это сообщение отредактировал(а) p0s0l - 21.12.2003, 13:13 -------------------- С уважением, г-н Посол. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
Chingachguk
писать в сегмент кода я посоветовал так как пишу я на асме и частенько чтоб не мучатся делаю единый сегмент и для кода и для данных естественно с возвожностью и писать и читать его -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Вот у меня нет такой возможности, так как эту процедурку я прикрепляю к левому файлу, вот и получается такая штука!
Читать то я могу, а вто писать нееееееееееееее...! Читаю: mov edi,[esp+4*5] lea eax, [edi + @Function] // теперь в eax @Function @Function: dd 000000000h Как теперь мне можно туда записать Кто-то говорил использовать специальную API, но я думаю это бред, но все может быть, если это будет просто и рационально!!!! Жду ваших ответов! |
|||
|
||||
| Chingachguk |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
я.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Chingachguk - API юзать ему нельзя, т.к. не знает адресов функций. Если бы знал, так и делать бы ничего не надо было бы...
kostik_16, если ты добавляешь новую секцию с кодом, то можно поставить доступ и для записи. Я ж тебе прислал пример, где присоединяется новая секция к файлу, и там же пример того, как при добавлении этой секции записывается старый адрес точки входа... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Я так понял, что он в дельфи готовит код, который насыщает адресами апи-функций, которые будет вызывать ... ну где-то там, в другой программе. Где-то там нельзя вызывать апи, но можно будет использовать заранее заготовленные адреса (в ячейках кода). Как я понял, он в заготовку не может писать, а не "там, вдали, за рекой..." -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Я определять адераса АПИ могу, так что смело могу их вызывать!!!!
И я не примоеденяю новую секцию, а приписываю код к последней - это более работоспасобно!!!! |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
яб не так сделал
можно хедер екзешника раздвинуть (тот кусок где стуб мсдосовский) и туда свой код пхнуть останется только изменить ентрупоинт у ехе на свой ну а вообщето к примеру upx ниче не дописывает упакованый файл внутри него лежит при запуске упх выделяет память копирует туда свою прос распаковки и начинает распаковывать ехешник прямо туда где тот и должен лежать если вы заметили у ориг и упакованого файла имаджебазе тотже будет с импорт табле тоже упх ниче не делает остается вроде она оригинальной -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
oleg1973, расскажи по-подробнее про upx. Если оригинальный exe распаковывается в память, то как он запускается ? Или я неправильно тебя понял...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Кроче я вчера понял свою ошибку!! Я просто протупил!!!!
Я прибавив свой код к секции забыл изменить ее характеристику, а там стояло только чтение и еще чет, а когда изменил, то все работает!!! Все спасибо за внимание! |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
p0s0l
ну да упх распаковывает ехешник к примеру с адреса 4001000 (не факт конешно все от ехешника зависит) импорт табле упх вообше не трогает просто нагло ее копирует от оригинального ехе поэтому при загрузке файла в память загрузчик винды сам туда подставляет нужные значения ну и все после распаковки просто управление передается ехешнику -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 Репутация: 1 Всего: 11 |
Хм... а нельзя сделать просто отдельный объектник с этой функцией на чистом асме и потом его подлинковать к основной проге? Разобраться только с конвенцией вызова функций - это должно где-то быть описано вместе с компилером...
-------------------- Kernel panic: /dev/null overflow! GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y? B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981 |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
запросто пример ниже
компилим все это дело в fasm получаем *.obj потом берем COFF2OMF.EXE конвертируем и можно к дельфи проэкту подключить проверено работает format MS COFF ;указываем выходной формат OBJ файла include '%fasminc%\win32a.inc' public myfunc ;экспортируемая процедура section '.text' code readable executable proc myfunc,param enter mov eax,param return Это сообщение отредактировал(а) oleg1973 - 2.1.2004, 18:03 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |