Вниз
Скачать: CL | DM;

Как можно получить доступ к регистрам из делфей?   Найти похожие ветки 

 
Selesty ©   (2003-01-22 23:48) [0]

Такой вопрос:
допустим у меня есть строка
ExeCode:string="x90xebx03x5dxebx05xe8xf8xffxffxffx83xc5x15x90x90"
@ExeCode - даст адрес этой строчки?
а как теперь засунуть этот адрес в eip чтобы код содержащийся в по этому адресу начал выполняться
И ещё в каком виде нужно загонять машинный код в строку, чтобы он выполнялся:
1 - в таком: a="\x90\xeb\x03\x5d\xeb\x05\xe8\xf8\xff\xff\xff\x83\xc5\x15\x90\x90"
2 - в таком:
a="x90xebx03x5dxebx05xe8xf8xffxffxffx83xc5x15x90x90"
3 - в таком:
a="90eb035deb05e8f8ffffff83c5159090"
Положит ли интерпритатор строку в стек, если я обозначу переменную содержащую маш коды как ExeCode:string="..." в Var функции (в модуле (unit))
как строка обозначенная как string будет расположена в 32 битном стеке, если строка будет представлять некий машинный код - выполнится ли он, если на него будет указывать eip?
Думаю вопрос понятен?!
Только не спрашивайте зачем мне это.... Просто Нуно очень
Ответ
2. Строку надо в виде:
SomeString: string=#$b0#$bf....;
3. вместо @SomeString используй procedure(PChar(SomeString))... так оно правильно адрес возьмет

procedure(PChar(SomeString)) - не совсем понятно, так как в регистр eip засунуть адрес строки, чтобы далее программа начала выполнять инструкции заданные машинными кодами в строке, допустим есть функция
function exe_code(var VerOS:byte); //VerOS - версия Оси (смотря какая)
var
SomeString:string=#$90#$eb#$03#$5d#$eb#$05#$e8#$f8#$ff#$ff#$ff#$83;
{Куда поместится эта строка?В стек или в data? - Важно - так как код самомодифицирующийся}
regi:registers;
P:Pchar;
begin
P:=@SomeString;
regi.ip:=p; //помещаем указатель на строку в eip - прокатит так?-начнёт ли код из //которого состоит SomeString выполняться?

end;
//Или как ещё можно заменить eip на нужный мне, в течение выполнения программы?


 
ole ©   (2003-01-23 04:20) [1]

Const
A:Array [1..Max] of Byte=
($90,$eb,$03....$90);
End;
В процессе выполнения программы:
Asm
Jmp Pointer(A)
End;
Не забудь поставить в конце кода код команды RETF



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.034 c
14-30115
GebbelZ
2003-02-23 02:57
2003.03.10
MS Internet Explorer


1-29939
Hill1
2003-02-27 10:32
2003.03.10
DLL + TWinControl + THint


6-29981
2Ksion
2003-01-21 19:18
2003.03.10
И всё тотже tWebBrowser и Скрипты на отображаемых страницах


14-30132
michael_b
2003-02-23 20:54
2003.03.10
Что делают на подобных сайтах профессионалы???


14-30135
{{{KOTOS}}}
2003-02-23 13:20
2003.03.10
МАСТЕРА СКИНЬТЕ ФАЙЛ ПОЖАЛУЙСТА GDS32.dl для NT




   Наверх