Otázka:
Kopírování / vkládání kódu do spustitelného souboru pomocí Olly
Fewmitz
2013-04-19 23:45:39 UTC
view on stackexchange narkive permalink

Pracuji s nějakým kódem sestavy x86 a musím z jednoho spustitelného souboru vytrhnout a vložit tento kód do jiného.

Původně jsem měl spustitelný soubor, který měl přijmout dva parametry příkazového řádku a spusťte na nich ručně psanou funkci. Nicméně jsem narazil na obtěžování pomocí GetCommandLine et al k vrácení parametrů v mém ASM. Jmenovitě to vrátilo Unicode a potřeboval jsem parametry v ANSI. Spíše než se zabývat nastavením volání knihovny a převodem tímto způsobem jsem sestavil malý program, který používá argumenty příkazového řádku se záměrem opětovného použití kódu.

Takže teď mám dva spustitelné soubory: - jeden s příkazovým řádkem parametry analyzovány a na jejich správných místech - dva se skutečným sestaveným funkčním kódem uvnitř něj.

První spustitelný soubor má prostor pro funkci NOP'd ven, ale potřebuji dobrý způsob, jak vložit logiku . Podíval jsem se na Asm2clipboard, Code Ripper a data ripper, ale mají pouze funkce, které umožňují vytrhnout sestavu, ale ne vložit ji zpět.

Jsem si vědom, že budu muset opravit adresy a podobné věci, ale nemohu najít způsob, jak v Olly nebo jiných nástrojích přesunout kód mezi spustitelnými soubory. Můžu jít do HexEdit nebo něčeho takového, jak jsem předpokládal, ale doufal jsem, že existuje jednodušší způsob.

uhm, `GetCommandLineA` nebo` GetCommandLineW`? Proč jednoduše nepoužít ten správný pro svůj kontext?
Tři odpovědi:
Ange
2013-04-19 23:59:36 UTC
view on stackexchange narkive permalink

disasm

použijte IDA (proč to může udělat pouze Olly? IDA free), nebo OllyDbg s plug-inem BeaEngine (má některé konkrétní možnosti syntaxe ASM)

vylepšit v disassembleru

přejmenujte co nejvíce štítků pomocí delta adresy - je bolestivé to udělat později

export do ASM

přepracujte syntaxi ASM, abyste získali je znovu sestavitelný

patch

buď:

  • vytvořte svůj ASM kód nezávislý na EIP a opravte jej jako hex

  • Znovu jej vložte pomocí nástroje Iczelion Code Snippet Creator (vloží váš ASM kód zkompilovaný z vašeho OBJ)

waliedassar
2013-04-20 13:57:12 UTC
view on stackexchange narkive permalink

Pro OllyDbg je to

  1. Vyberte kód z okna CPU

  2. Klikněte pravým tlačítkem a vyberte Binární

  3. Vyberte Binární kopie

  4. V cílovém okně CPU proveďte stejné, ale vyberte Binární vložení

matrosov
2013-04-29 01:47:48 UTC
view on stackexchange narkive permalink

Multiline Ultimate Assembler je plugin pro víceřádkový (a konečný) assembler (a disassembler) pro OllyDbg. Je to dokonalý nástroj pro úpravy a rozšíření zkompilovaných spustitelných funkcí, psaní jeskyní kódu atd.

http://rammichael.com/multimate-assembler



Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...