Author Topic: Disassembling v Ollydbg  (Read 873 times)

STMR

  • Newbie
  • *
  • Posts: 29
Disassembling v Ollydbg
« on: August 27, 2009, 10:00:56 AM »
Cus, mam mensi problem s OllyDbg. Otevrel jsem v nem aplikaci, dojel na konec kde konci kod a tam si pridal ascii string. Potom jsem dal instrukci push 4af644 (adresa stringu) a call dword ptr ds:[adresa GetProcAddress]. To vsechno by slo, kod jsem dal na adresu, ktera konci 0, kvuli zarovani. Jenze jakmile soubor ulozim, znovu otevru (nebo dam Analyse) tak ten kod se prevede do ascii, takze misto push xxxx mam db xx.

Proc? Díky za pomoc

Master

  • [t4C]newbie child
  • VIP
  • *****
  • Posts: 615
Re: Disassembling v Ollydbg
« Reply #1 on: August 27, 2009, 10:29:55 AM »
Tedka si presne nevzpominam, ale zkus najet na ten ascii kod a zmacknout CTRL+A, melo by to spustit anazalyzu toho mista a melo by se to prevest na asm.

STMR

  • Newbie
  • *
  • Posts: 29
Re: Disassembling v Ollydbg
« Reply #2 on: August 27, 2009, 10:37:48 AM »
Ee to by se tam muselo najet a zmacknout Backspace. Ale me by zajimalo proc to normalni nefunguje. Nebo takhle, kdyz chcete dopsat do programu kus kodu tak to udelate jak?

joe

  • Newbie
  • *
  • Posts: 46
Re: Disassembling v Ollydbg
« Reply #3 on: August 27, 2009, 11:38:20 AM »
Prekontroluj si PE hlavicku, je mozne ze je tento kod mimo sekcie text.
Dalsia moznost je nejaky nestandardny kod a olly ho posudi ako retazec.
Skus sa trochu pohrat s volbami v ollym pod Analysis 1 (Decode tricky code sequences alebo in7 sposob rozoznavania procedur)

NeptuN

  • I'd be forever young
  • Junior Member
  • ***
  • Posts: 158
Re: Disassembling v Ollydbg
« Reply #4 on: August 27, 2009, 01:16:57 PM »
Pokud chces pridat kod, tak presne jak bylo spomenuto: Zkontrolovat PE hlavicku kvuli velikosti sekce. Samotny kod muzes pridat do volneho mista na konci sekce - pokud se tam vejde. V pripade ze ne, musis pridat dalsi sekci, coz udelas opet editaci PE hlavicky, presneji tabulky sekci, kam pridas zaznam o nove sekci - jmeno, velikost atd.

Pokud jsi uz pridal kod, nenech se zmast Ollym a pripadnou nepresnosti pri disassemblovani. Z logiky veci, Olly pri disassemblovani postupuje tak, ze zacne u entrypointu a postupuje dal, disassembluje instrukci po instrukci. Jenze - instrukce maji ruznou delku, a to je zde kamen urazu. Pokud je program vykonavan krok po kroku a je sestaven compilerem jako soubor po sobe jdoucich instrukci - zadny problem. Jenze... pri editaci jiz sestaveneho programu se ti muze stat - a to se v tvem pripade takrka urcite stalo - ze udelas v tom proudu instrukci "mezeru". Tato "mezera" vubec neovlivni chod programu - treba proto, ze se tam nikdy ani program nedostane - ale ovlivni proces disassemblovani. Fakticky program je v poradku, ale zmatl jsi Ollyho. Pokud bys program debuggoval, vse bude v poradku, jen Olly bude placat nesmysly.

Pro detailnejsi informace se muzes mrknout na jednu pokrocilou techniku programovani, ktera s timto problemem uzce souvisi. Najdi si nejaky tutorial na Metamorfismus, a precti si zakladni myslenku. Pak pochopis, proc Olly blbne.

Co se tyce opravy tohoto spatneho zobrazeni, tusim ze Olly nabizi moznost "noveho disassemblovani" s ohledem na udanou adresu. To by melo tvuj problem vyresit.
Knowledges are powerful weapon

STMR

  • Newbie
  • *
  • Posts: 29
Re: Disassembling v Ollydbg
« Reply #5 on: August 27, 2009, 03:03:36 PM »
NeptuN: Dík

Takže: nejdřív jsem si předělal ten entry point a potom sem tam dopsal kód (předtím jsem to dělal naopak) a funguje to! Jinak to dopisuju do CODE sekce, nejaky ty konstanty (já třeba teď potřebuju "GetCurrentDirectory") jsem dal někam mimo a celkem to jde.

Jeste jednou dik.