Delphi a bin. soubory + prace s pameti

HackForum

Delphi a bin. soubory + prace s pameti#
Cauky, mam dotaz, potreboval bych v delphi 7 otevrit binarni soubor a zapsat do nej binarne data(shellcode), bohuzel s delphi zacinam a tak vubec nevima ani netusim. V napovede je pekny prd. A pak dalsi vec. Potreboval bych ulozit nejaky data do pameti(exe soubor prevedenej do hex podoby) a spustit ho z ty pameti -> tedy aby se ten soubor nemusel ukladat nekam na disk. De to nejak? Hloupa otazka co? napadlo me: najit pocatek(adresu) toho programu v pameti a pak pomoci asm na tu adresu skocit, ale nevim jestli to je mozny. Zatim jsem to nezkousel( a co jsem zkousel tak padalo :(). Predem diky za kazdou radu. Ja a nevite nahodou o nejaky ucelenym baliku prirucek pro delphi 6 and more? :) Predem danke

----------
Když nejde o život, tak o hovno de...

Charles Bukowski - kdo zna, ten vi :)
(odpovědět)
BabCA SjEs | E-mail | ICQ 4064521927.11.2006 13:18
re: Delphi a bin. soubory + prace s pameti#
ad ukladani/cteni binarnich souboru: pokud si spravne pamatuju z pascalu, tak se soubory obsahujici nejake konkretni struktury definovaly jako "file of <struktura>". samotny file bez typu je pry borlandi, takze by v delfach mohl taky jet. pouziva se to pak stejne jako bezne textove soubory (read/write)

pokud jde o spousteni kodu z pameti, tak jak to popisujes by to mozna jit mohlo. mozny problemy jsou:
- pochybuju ze to pujde tak, ze tam placnes nejaky "exe", budes si z nej asi muset vytahnout jenom cistej kod (pak skocis na prvni adresu a pojedes)
- zakaz spousteni kodu z datovyho segmentu
- musis si davat pozor kam co zapisujes
- po jeho vykonani musis vycistit zasobnik apod a zase se vratit na puvodni misto

jeste muzes mrknout na techniky pouzivany exe cryptorama nebo packerama (upx a spol) - ty to nejak umi tusim, takze bys tam mozna nasel inspiraci.

pokud mas predstavu na co bys to chtel pouzivat, tak si taky muzes udelat nejakej svuj skriptovaci jazyk. tohle sice neni uplne nejjednodussi, ale myslim, ze to bude porad jednodussi a stabilnejsi nez spousteni binarniho kodu.
(odpovědět)
axis | 82.208.10.16/62.84.132.*8.11.2006 15:04
re: Delphi a bin. soubory + prace s pameti#
nacitani binarniho souboru muzes delat bud pres funkce blockread nebo pres streamovani ... je to lehke pokud znas strukturu toho binarniho souboru
(predpokladam ze je cizi)

priklad pres stram:

var
fs: TFileStream;
i: word;
begin
fs := TFileStream.Create('jmeno souboru', fmOpenRead);
fs.Position := 0;
fs.ReadBuffer(i, SizeOf(word));
ShwMessage(IntToStr(i));
{ nasleduje nacitan dalsich hodnot }
fs.Free;
end;

jen si davej pozor na datove typy pokud totiz najedes popis ke strukture a bude v jinem jazyku musis si najit odpovidajici typ i pro delphi ...

a pozor taky na veci jako Big-endian atd...

snad ti to pomohlo
(odpovědět)
dreddy | 85.160.79.*9.11.2006 8:47
re: Delphi a bin. soubory + prace s pameti#
Jj diky moc. Jeste k tomu scriptovani. Jestli jsem te pochopil (doufam ze jo) tak to pro me nejni reseni :(. Z toho nahrani kodu do pameti asi vypliva, ze je to fakt nejspis nepouzitelne. Hledat pocatek programu- fiha to by byla fuska -> Vymazat hlavicky "exacu", mno ale jak tak nad tim premejslim, tak to je skoro nemozny: Co tabulky importu to bych musel vsecno manualne nahrat do pameti a teprv se na to odkazova, hm chutovka :). Necham to spat, ulozim to na disk, hodim rezidentni program do pameti a necham ho at kontroluje a pri nejhorsim at to zase prepise zpatky :), ok a jeste jednou diky moc 8)
a snad jsem tu neplacal hovadiny 8)

----------
Když nejde o život, tak o hovno de...

Charles Bukowski - kdo zna, ten vi :)
(odpovědět)
BabCA SjEs | E-mail | ICQ 4064521929.11.2006 16:57
re: Delphi a bin. soubory + prace s pameti#
BabCA SjEs jak se na to tak divam, vsechno co potrebujes je poradny debugger, co treba SoftICE, nebo IDA ?

Co se tyce low-levelu pristupu k pameti, tak bys musel obejit Windoze a napsat si vlastni rutiny.

Kazda aplikace ve Win bezi ve vlastnim prostoru a tak nemuzes videt to, co je mimo tve aplikace. Resi se to ruznymi komunikacnimi protokoly mezi aplikacemi, ktere nabizi Windows kernel, jenze zadny z tech protokolu ti neumozni zmenit jen tak cast pameti mimo prostor. Je vzdy potreba "opravit" onen shitozni Windows kernel (nektere moderni viry jsou v tom dost dobre) takze bych doporucil cerpat stovky az tisice radku v assembleru prave z modernich viru viz [link] (stale by mel byt ve WIN zahrnut DPMI a s nim souvisejici ringy, pro skutecne neomezenou low-level upravu pameti je potreba ring0).

PS: Co chybny pokus, to zasek PC a tvrdy RESET, hodne stesti
(odpovědět)
--==[FReeZ]==-- | E-mail | Website9.11.2006 17:42
re: Delphi a bin. soubory + prace s pameti#
Mno tak IDA mam, dobrej program ale to my taky nepomohlo, bohuzel. Hm diky :(. Takze se mam na to asi vyprdnou a heldat jinou cestu :). Asi se pustim do tech Assembleru :). Diky a kdyby jste mel jeste nekdo nejakej napad tak dejte vedet :)

----------
Když nejde o život, tak o hovno de...

Charles Bukowski - kdo zna, ten vi :)
(odpovědět)
BabCA SjEs | E-mail | ICQ 40645219210.11.2006 16:21

Zpět
 
 
 

 
BBCode