RE FORUM
[REVERSE ENGINEERING] => Newbie => Topic started by: llAmElliK on December 06, 2005, 12:42:21 PM
-
Hi,
aby nikdo neusnul na vavřínech připravil jsem nový cme - a aby bylo dobře malinko jsem zvý?il skill - ov?em pouze co se týče pou?ití nástrojů - u tohodle cme budete muset pou?ít asi i nástroje který mo?ná máte ve svý databázi ,ale zatím jste je nevyu?ili - začněte a pak se ptejte v?e vysvětlím.
Malý popis - výsledné ře?ení je velmi ,velmi easy - ov?em jde o to se k němu propracovat to znamená projít několika nástrahami a hlavně pou?ít správné nástroje a vědět jak s nimi pracovat - trochu jsem si pohrál s finální podobou .exe co? Vám uká?e Olly ihned po nata?ení (někteří budou vědět hned která bije) no a? odstraníte tuhle malou fintu mů?ete pou?ít dal?í nástroje atd.
RE musí být i zábava a hlavně je třeba stále udr?ovat přátelství s kamarádem gůglem.
Hodně ?těstí
-
No hura.Jdu se podivat :)
-
Kua, PE hlavicku som prezrel celu a nenasiel som ziadnu "tvoju" upravu, aby si z toho urobil neznamy format pre Olly... :confused: Zatial... ;)
-
Kua, PE hlavicku som prezrel celu a nenasiel som ziadnu "tvoju" upravu, aby si z toho urobil neznamy format pre Olly... :confused: Zatial... ;)
Tag si zatial ?patně hledal - udělal jsem to já;) - a není to jen na Olly ale "odrovná" to hodně toolů a dumperů vč v?ech unpackerů na daný packer...
[EDIT - doufám,?e ?ádnej unpacker nepotřebujete - manual je otázka pár "hmatů" - a během 3 minut jsem to v olly udělal asi na 3 způsoby - pokud budete chtít help tak se zamozřejmně zeptejte a? to v olly rozchodíte.]
-
Je mi jasne, ze to je tvoja praca... Inak by mi len tak "nahodne" nechybala adresa potrebna pre inicializaciu CME (zatial som prisiel len na nu, ale mozno je toho aj viac - uvidim).
-
mensi rada prectete si http://www.zive.sk/h/Poradca/AR.asp?ARI=114990
-
Noo, uz sa mi to podarilo unpacknut a mierne poupravit tak, aby to slapalo. Je pravda, ze mi Olly stale hlasi nieco typu "Bad or unknown format of 32-bit executable file", ale CME sa pekne spusti. Uznavam, nie je to prave to najkrajsie riesenie ale robim, co viem...
-
mensi rada prectete si http://www.zive.sk/h/Poradca/AR.asp?ARI=114990
Je?ííí? nestra? :D - já se s tím poprvý setkal u SLVc0deProtecor-u.
-
přečtu,ale a? zítra :) Dík.Ale je to celkem v?ivárna...
-
Kdy? jsme u toho - tady je vidět jak "jsme" v?dycky o krok napřed - v případě pou?ití triku OutputDebugString:
procedure CrashOlly;
var s: string;
i: integer;
begin
s:='';
for i:=1 to 100 do
s:=s+'%s';
OutputDebugString(PChar(s));
end;
...si dneska u? moc nikdo moc ne?krtne proto?e u? je na to plugin - ov?em je to zajímavej postřeh z "druhého břehu" ...si vzpomínám ?e taghle někdo "odstranil" Salamander ?e?;)
-
A? budete mít funkční unpack stáhněte p32dasm (http://t4c.ic.cz/forum/attachment.php?attachmentid=220) - ten vám uká?e v?e potřebné - to ?e je unpack správný poznáte i podle toho ?e vám p32dasm (http://t4c.ic.cz/forum/attachment.php?attachmentid=220) cme v pohodě decompiluje.......enjoy.
-
to by se mi musel ten unpacknuty vubec spustit :(
-
já to sice unpacknutý mám, spustit to jde, ?ádný hlá?ky to v olly nehází, poznám z toho akorát ?e to je VB, ale do P32dasm ani WKT to natáhnout nejde :confused:
-
A jak jste to unpackli??? Ja upravil pres lorda tu jednu hodnotu na 00000010.
A pak unpackoval podle tutoru,rebuildnul PE pres lorda a haze mi to chybu a neodesilat :(
-
OK - jeden návod do Olly.
Spusťte Olly - OPTIONS - DEBUGGING OPTIONS - TRASE REAL ENTRY BYTEWISE ....
Natáhněte target s chvíli čekejte - zastaví na OEP - dejte si REMOVE ANALYSE FROM MODULE! ...
Pak dump BEZ OPRAVY IAT - nechte spu?těno a opravte importy v ImpREC.
A druhej návod:
Najděte jumpy specifické pro FSG
004001C9 95 XCHG EAX,EBP
004001CA 8B07 MOV EAX,DWORD PTR DS:[EDI]
004001CC 40 INC EAX
004001CD ^ 78 F3 JS SHORT newbiecr.004001C2 ------
004001CF 75 03 JNZ SHORT newbiecr.004001D4
004001D1 FF63 0C JMP NEAR DWORD PTR DS:[EBX+C] <--- BPX
004001D4 50 PUSH EAX
004001D5 55 PUSH EBP
Dejte BPX na JMP - potom F9 - zru?te BPX a F8 a stojíte na OEP - pak pokračujte stejně.
Tady mů?ete pou?ít mojí IAT.(v impREC dejte LOAD IAT a natáhněte tuhle)
Stačí?
[EDIT - to ?e to nejde do p32dasm (http://t4c.ic.cz/forum/attachment.php?attachmentid=220) znamená ?e máte ?patně opravený importy (prostě ?patnej unpack - samozřejmně to mám odzkou?ený celej postup tak?e pokud unpacknete dobře p32dasm (http://t4c.ic.cz/forum/attachment.php?attachmentid=220) vám to veme a decompiluje OK)
Zkontrolujte svojí IAT zde tam máte tuhle hodnotu , to je důle?itý]
1 00001018 msvbvm60.dll 0064 ThunRTMain
[EDIT2 stáhněte si pro jistotu je?tě tohle nastavení impREC - přepi?te tím svůj .ini]
-
Tak je?tě jednou - pokud budete postupovat jak říkám + pou?ijete tenhle .ini do imprec musí potom v olly pokud vyrolujete trochu nad OEP taghle:
00401020 .- FF25 04604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.rtcM>; msvbvm60.rtcMsgBox
00401026 .- FF25 14604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.__vb>; msvbvm60.__vbaExceptHandler
0040102C .- FF25 10604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_QueryInterface
00401032 .- FF25 08604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_AddRef
00401038 .- FF25 0C604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_Release
0040103E .- FF25 00604000 JMP NEAR DWORD PTR DS:[<&msvbvm60.Meth>; msvbvm60.MethCallEngine
00401044 $- FF25 18104000 JMP NEAR DWORD PTR DS:[401018] ; msvbvm60.ThunRTMain <<-----
A ne taghle:
00401020 .- FF25 04104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.rtcM>; msvbvm60.rtcMsgBox
00401026 .- FF25 14104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.__vb>; msvbvm60.__vbaExceptHandler
0040102C .- FF25 10104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_QueryInterface
00401032 .- FF25 08104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_AddRef
00401038 .- FF25 0C104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.EVEN>; msvbvm60.EVENT_SINK_Release
0040103E .- FF25 00104000 JMP NEAR DWORD PTR DS:[<&msvbvm60.Meth>; msvbvm60.MethCallEngine
00401044 $ FF25 18104000 JMP NEAR DWORD PTR DS:[401018] <--------- ?PATNĚ
?patně proto ?e vám chybí import msvbvm60.ThunRTMain - buď ho dopi?te v notepadu di výpisu IAT nebo to správně opravte.
-
Proto?e mi nesel unpacknuty target asi kvuli nejake ptakarne v systemu,musel mi lame poslat cely orginalni cme.Reseni sem udelal asi za 15 minut.A to sem zkousel IDU a ollyho a ani v jednom sem to neudelal.Pak sem na reseni prisel pomoci P32Dasm:tu to jde jasne videt:
00001CEE: 28 LitVarI2: 982 0x3D6 var_CC
porovava zadanou hodnotu s hodnotou 982 = 3D6h.
Yazz
-
Tiez som sa pridal k uspesnym uz vcera vecer... Pomohla mi hlavne ta IAT, pretoze mne tam z nejakeho dovodu nenacitalo import tej funkcie ThunRTMain. Ale prisiel som na to, co tam ma byt a jednoduchym patchom som to poopravil priamo v subore (nie v importoch). Program sa mi potom sice spustil, ale dekompilovat nesiel, pretoze dekompilery pracuju spravne IBA ak je EntryPoint nastaveny na uvodnu sekvenciu
PUSH offset RT_MainStruct
CALL ThunRTMain
Lenze ked som to patchol, musel som presmerovat EP na ten moj patch a ten potom pokracoval na spominanu sekvenciu. Program pracoval spravne, ale IBA na mojom pocitaci (na inom nie) a nesiel dekompilovat... Po nacitani spravnej IAT uz to bolo bez problemov.
Spravne SN uz napisal Master, tak sa nebudem opakovat.
Snad len jedna vec: Skusal som aj poskytnute ini pre ImpRec, ale stale mi to nedokaze najst ten ThunRTMain, vsetky ostatne su v pohode. Vie mi niekto poradit, kde robim chybu?
P.S.: P32Dasm je vazne dobry. (Thx to DARKER)
-
Abych vás nemát - do IAT kterou jsem se upload jsem jí dopsal ručně - abyste věděli co tam má bejt - vy jí uvidíte a? v olly tak jak sem popisoval vý?.
Ona tam je - stačí sečíst první hodnoty:
OEP: 0000104C IATRVA: 00001000 IATSize: 00000018
Tak?e OEP je jasný a první důle?ítá hodnota je 1000+18 = 1018 + 40000 = 401018
Tak teď se mrkněte co je na adrese 401018 : - tohle:
00401018 . 7C350066 DD msvbvm60.ThunRTMain <-----
0040101C FF DB FF
0040101D FF DB FF
0040101E FF DB FF
0040101F FF DB FF
Jasný - aplikace ví kam "jít" - ThunRTMain 7C350066.
Zbytek nechám na DARKERovi pokud bude mít čas.
-
taky hotovo.. problem byl v ImpRec.ini ;)
-
Tak uz mi to je jasne... Chybka bola v tom .ini subore a ja som to kontroloval len vo vypise IAT a tam to nebolo (ale nevyskusal som to).
Ja som vedel, uz po dumpnuti co tam ma byt (odsledoval som to v Ollym), len som dlho nevedel prijst na to, ako to tam mam napasovat.Moje riesenie s patchom sice bolo funkcne, ale iba na mojom pocitaci, ak by som to spustil pod inym systemom, tak by to nefachalo a navyse to tie VB dekompilatori nevedeli spracovat, lebo su vyzaduju za EP mat tu uz spominanu sekvenciu PUSH-CALL.
Ale bolo to pre mna ako zaciatocnika dost poucne CME... Thx.
-
Finální ře?ení tohodle cme bylo opravdu "tristní" - kdy? jsem ho vybral DARKER mně upozorňoval ,?e je na něj spousta tutorů - dokonce i já jsem kdysi jeden psal - ale o to tady ne?lo,zabalil jsem to packerem trochu upravil hodnotu PE HEADERS a u? od začátku jsem upozorňoval,?e vytáhnete do boje s novými nástroji - a to bylo v tomto cme hlavní - naučit se je pou?ívat a vědět co od nich chtít.
Hodně lidí dodnes vůbec neví jak s impREC - já jej pou?ívám téměř denně + třeba LordPE atd , jenom PE Editorů mám asi 7 (zmíněný LordPE,Stud_PE,PE-TOOLS,PEiD,WARK aj) - ka?dý umí něco líp ne? ten druhý a poka?dé je to třeba vyzkou?et.
Bez těchto nástrojů se v dne?ní době packerů téměř nelze obejít,ale nemusí to být packer,někdy stačí úprava v resource a importy se zbortí - tak?e musíte sáhnout po impREC.
Existují i nástroje ,které Vám nacpou do hotového .exe dal?í imp.funkce aj aj.
Sami jste se mohli přesvědčit,?e pouhé ?patné nastavení vám pěkně zamotá hlavu a ?e s targetem prostě nehnete.
Kdybychom se naučili alespoň na 50 % pou?ívat mo?nosti OllyDbg nebo třebas IDA svět RE by byl zase o malinko jasněj?í.
V?em ře?itelům díky za snahu a za to ?e se nebáli vstoupit do zatím neznámých vod........(Cze..CZ..hlavně za obdivuhoudnou nervovou stabilitu).
-
Jasne... ;) Nech sa paci, ale je to pisane trochu narychlo...
-
Díky moc - super - teď u? SOLVED.