Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несложный вопрос! Но срочный вопрос!!!!! 
:(
    Опции темы
p0s0l
Дата 21.12.2003, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 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


--------------------
С уважением, г-н Посол.
PM   Вверх
oleg1973
Дата 21.12.2003, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



Chingachguk
писать в сегмент кода я посоветовал smile.gif
так как пишу я на асме
и частенько чтоб не мучатся делаю единый сегмент и для кода и для данных
естественно с возвожностью и писать и читать его



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
kostik_16
Дата 21.12.2003, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: нет
Всего: 1



Вот у меня нет такой возможности, так как эту процедурку я прикрепляю к левому файлу, вот и получается такая штука!

Читать то я могу, а вто писать нееееееееееееее...!

Читаю:
mov edi,[esp+4*5]
lea eax, [edi + @Function]

// теперь в eax @Function

@Function: dd 000000000h

Как теперь мне можно туда записатьconfused.gifconfused.gif
Кто-то говорил использовать специальную API, но я думаю это бред, но все может быть, если это будет просто и рационально!!!!

Жду ваших ответов!
PM MAIL   Вверх
Chingachguk
Дата 22.12.2003, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата

Кто-то говорил использовать специальную API, но я думаю это бред


я.

Цитата

ChangeZoneSize equ @@SkipModify - @@Modify
; Открываем на запись байты

; Получить ID текущего процесса
  invoke GetCurrentProcess
  mov CurrProcID,eax

; Вывевсти на экран результат
.data
OKProcID db "Current Process ID: confused.gifconfused.gif??",0
.data?
OldProtectAPI db 100h dup(?) ; Фиг знает, что это ;)
.code
  mov edi,offset OKProcID+20
  call HexChar ; Моя функция форматирования
  invoke MessageBox,NULL,addr OKProcID,addr AppName,MB_OK+MB_ICONINFORMATION

; Открыть на чтение и запись первые ChangeDLLZoneSize
; if(not VirtualProtectEx(GetCurrentProcess(),ptr_proc, 6,
;        PAGE_EXECUTE_READWRITE, OldProtectAPI)) - кусок примера из Delphi
  push offset OldProtectAPI
  push PAGE_EXECUTE_READWRITE
  push ChangeZoneSize ; OK ?
  push dword ptr offset @@Modify
  push dword ptr CurrProcID
  call VirtualProtectEx
  test eax,eax
  jnz @@AttribSet
.data
ErrProtEx db "Virtual Protect Ex error !",0
.code
  invoke MessageBox,NULL,addr ErrProtEx,NULL,MB_OK+MB_ICONERROR
  jmp @@Exit
@@AttribSet:

; Избегунть попадания в участок Modify- SkipModify
  jmp @@SkipModify
@@Modify: 
  nop
  nop
  nop
  nop
  nop
  nop
  nop
@@SkipModify:

; Эти команды приведут к JPF, если только не отработает VirtualProtectEx
  mov eax,offset @@Modify
  mov dword ptr [eax],666h





--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
p0s0l
Дата 22.12.2003, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 2
Всего: 112



Chingachguk - API юзать ему нельзя, т.к. не знает адресов функций. Если бы знал, так и делать бы ничего не надо было бы...

kostik_16, если ты добавляешь новую секцию с кодом, то можно поставить доступ и для записи. Я ж тебе прислал пример, где присоединяется новая секция к файлу, и там же пример того, как при добавлении этой секции записывается старый адрес точки входа...



--------------------
С уважением, г-н Посол.
PM   Вверх
Chingachguk
Дата 22.12.2003, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата

API юзать ему нельзя, т.к. не знает адресов функций. Если бы знал, так и делать бы ничего не надо было бы...


Я так понял, что он в дельфи готовит код, который насыщает адресами апи-функций, которые будет вызывать ... ну где-то там, в другой программе. Где-то там нельзя вызывать апи, но можно будет использовать заранее заготовленные адреса (в ячейках кода). Как я понял, он в заготовку не может писать, а не "там, вдали, за рекой..."


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
kostik_16
Дата 22.12.2003, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: нет
Всего: 1



Я определять адераса АПИ могу, так что смело могу их вызывать!!!!
И я не примоеденяю новую секцию, а приписываю код к последней - это более работоспасобно!!!!
PM MAIL   Вверх
oleg1973
Дата 22.12.2003, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



яб не так сделал
можно хедер екзешника раздвинуть (тот кусок где стуб мсдосовский) и туда свой код пхнуть
останется только изменить ентрупоинт у ехе на свой
ну а вообщето к примеру upx ниче не дописывает
упакованый файл внутри него лежит
при запуске упх выделяет память копирует туда свою прос распаковки
и начинает распаковывать ехешник прямо туда где тот и должен лежать
если вы заметили у ориг и упакованого файла имаджебазе тотже будет
с импорт табле тоже упх ниче не делает
остается вроде она оригинальной



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 23.12.2003, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 2
Всего: 112



oleg1973, расскажи по-подробнее про upx. Если оригинальный exe распаковывается в память, то как он запускается ? Или я неправильно тебя понял...




--------------------
С уважением, г-н Посол.
PM   Вверх
kostik_16
Дата 23.12.2003, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: нет
Всего: 1



Кроче я вчера понял свою ошибку!! Я просто протупил!!!!
Я прибавив свой код к секции забыл изменить ее характеристику, а там стояло только чтение и еще чет, а когда изменил, то все работает!!!
Все спасибо за внимание!
PM MAIL   Вверх
oleg1973
Дата 26.12.2003, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



p0s0l
ну да упх распаковывает ехешник к примеру с адреса 4001000 (не факт конешно все от ехешника зависит)
импорт табле упх вообше не трогает просто нагло ее копирует от оригинального ехе
поэтому при загрузке файла в память загрузчик винды сам туда подставляет нужные значения
ну и все после распаковки просто управление передается ехешнику


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
NightGoblin
Дата 1.1.2004, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 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
PM MAIL WWW ICQ   Вверх
oleg1973
Дата 2.1.2004, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



запросто пример ниже smile.gif

компилим все это дело в 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
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2080 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.