Author Topic: Unpack 02 - FSG v2.0->[SOLVED]  (Read 1335 times)

llAmElliK

  • [TiME4CRiME]
  • Administrator
  • VIP
  • *****
  • Posts: 960
Unpack 02 - FSG v2.0->[SOLVED]
« on: May 04, 2007, 09:35:24 PM »
PACKER - FSG 2.0 by bart

Najdete na danem ftp v adresari FSG - enJOY
TiME AND CRiME ARE ETERNAL-REVERSE ENGINEERiNG iS MODERN PHiLOSOPHY AND iSN'T CRiME
[TiME4CRiME]

Master

  • [t4C]newbie child
  • VIP
  • *****
  • Posts: 615
Re: Unpack 02 - FSG v2.0
« Reply #1 on: May 05, 2007, 10:47:31 AM »
Díky moc,aspon ze si to nahodil,kdyz uz sme se nemohli porad stretnout.Many thx

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: Unpack 02 - FSG v2.0
« Reply #2 on: May 05, 2007, 04:25:30 PM »
Mám to hotové. Dal som to bez nejakého ?túdia ako na tento typ packera. Chvíľku som sa bavil i s krokovaním unpack rutiny... doporučujem napr. hneď úvodný trik s ESP. Určite to bude ka?dému jasné, keď sa mrkne do debuggera, prípadne si tých pár prvých in?trukcií pre-step-uje.

Na konci ma tro?ka ?tvali importy, musel som ručne zasahovať do dumpu a e?te aj mazať nejaké divné FThunky v ImportRec. Jednotlivé skupiny funkcií pre danú kni?nicu, resp. pointre na funkcie sú oddelené jedným nulovým DWORDom. Tuto sa nachádzali nejaké divné hodnoty 0xFFFFFF7F. Je to zámer FSG, či je to náhoda?

Nepodarilo sa mi v?ak skresať veľkosť, ale to sa mi nechce rie?iť, hlavne, ?e unpacknutý súbor funguje korektne. Dostal som sa na 128 517 bytov.

Video dodám neskor?ie, nechce sa mi in?talovať a nastavovať ten softík na capturing, mám ho na firemnom notebooku, tak?e cez tý?deň si tých 10-20 minút nájdem, keď u? viem, ako na to.
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
jupiii
« Reply #3 on: May 05, 2007, 07:40:53 PM »
OEP se mi podarilo dostat asi na 10 kroku, takze je to idealni pro OllyScript.
Taky sem mel problemy s importama. Musim priznat ze porad nevim jak imprec funguje. Postupoval sem asi nak takhle:
1. zadal sem do imprec OEP = 739D
2. pak IAT AutoSearch
a hodilo mi to jenom vetev msvcrt.dll. Nevi nekdo proc? Inu jako sedlak sem klikal na IAT Autosearch tak dlouho dokud mi nepribyly jeste dalsi 3 vetve. Nasledoval Fix Dump a exe jede. Pokud de o velikost (coz mi pripada zbytecny uvadet, ale pro mozne lepsi hledani chyb), tak ta mi 139 264 kB a po uprave v LordPE 128 310 kB.
Nastesti me zadny upravy IAT nepotkaly => sel bych se vykoupat o pul hodky driv.

mam radost ze sem to dal, ikdyz ani nevim jak

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: jupiii
« Reply #4 on: May 05, 2007, 11:28:58 PM »
Pokiaľ ide o IAT, ja som zmenil ručne RVA adresu na 0x1000, čo je vlastne začiatok import table, čo som zistil priamo z OllyDbg. Potom som vypočítal veľkosť, proste som odhadol koniec IAT a nech som tam zadal čokoľvek, tak mi to v?dy na?lo plno hovadín, tak?e toto som nepochopil, no vyrie?il som to cez ImportREC, ako som písal vy??ie. Čo sa týka početu kni?níc v import table, tak tých mám presne 9.

Pred prepisom RVA mi to tie? hodilo iba jednu kni?nicu, resp. FThunk, ako pí?e?, i?lo o funkcie z msvcrt.dll a RVA si nepamätám (niečo 0x12??), no size bola 0x54. S tým opakovaním klikaním na AutoSearch to potom skúsim a dám vedieť.

Jo, inak to OEP je fakt ľahké, ja som sa k nemu dopracoval postupne, resp. tromi BPX, prechádzal som ka?dú sekciu a pekne sledoval v EDI, čo sa mi to tam unpackuje. Keď ma to prestalo baviť, na?iel som vhodný jump a pokročil do ďal?ieho cykla. V podstate je ten jediný jmp near dosť lákavý.

Inak nejakú antidebug ochranu som si nev?imol, tak?e predpokladám, ?e FSG 2.0 ?iadnu nepou?íva.

Chcel som si to po vyrie?ení e?te raz prejsť, no hokej (a čo gratulácie...?  :rolleyes:  ) ma nepustil... :)  Popri sledovaní som na?iel nejaké video s unpackom, no jak to ten rákosník robil  :confused:  - pou?il len OllyDump s aktivovanou voľbou Rebuild Import - Method1. Toto som skúsil tie? a viem, ?e mi to nepomohlo, tak isto ako i u predchádzajúceho UPX. Tak?e nechápem, či mal rákos haluz alebo čarovnú verziu OllyDump-u. Povedal by som, ?e i?lo zrejme o veľmi jednoduchý target s minimom importov. Ďalej som sa pozeral na nejaký tutoriál, ďal?í ?ikmáč pou?íval také metódy, ?e mi do?lo zle, ale mo?no to bolo z tých ich znakov, tak?e prd som síce rozumel, no z obrázkov som usúdil, ?e daný spôsob nemusím.

Inak signatúra pre FSG 2.0 je pomerne jednoduchá. Dal by som tento chain...

87 25 ?? ?? ?? ?? 61 94 55 A4 B6 80 FF 13 73 F9

Čo sa týka LordPE, tak som testoval v?etky tri mo?nosti realign a v?dy mi vy?la uvedená veľkosť 128 517 bajtov. Pred úpravou som na tom veľkostne zhodne a to 139 264 bajtov.

Napadlo mi, ?e by som to skúsil mrsknúť totálne ručne, ale to by bola asi robota o hubu a dosť časovo náročná. A babrať sa s hlavičkou, jednotlivými sekciami, atď. to rad?ej vzdávam.
« Last Edit: May 08, 2007, 05:31:22 PM by eraser »
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: Unpack 02 - FSG v2.0
« Reply #5 on: May 06, 2007, 09:01:05 AM »
jakto ze se nam rozchazi pocet DLL v importech? neopakuji se ti? mam jen 4 a .exe je funkcni, zkousel sem s nim pracovat a zadnej error to nehodilo.

OEP se hleda dobre, protoze staci dat BP na JMP
Code: [Select]
010001CD   ^\78 F3             JS SHORT notepad.010001C2
010001CF     75 03             JNZ SHORT notepad.010001D4
010001D1     FF63 0C           JMP DWORD PTR DS:[EBX+C]
010001D4     50                PUSH EAX

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: Unpack 02 - FSG v2.0
« Reply #6 on: May 06, 2007, 11:46:41 AM »
Ak mô?e?, tak hoď to unpacknuté exe do LordPE a potom PE Editor - Directories - Import table - (L) a hoď sem výpis, prípadne to mô?e? uploadnúť na unpackschool ftp. Ja ho tam nahodím, vrátane toho môjho unpacknutého súbora. Dávam tam dve verzie, surový unpack a potom i ten upravený cez LordPE. Mô?e? si to porovnať, prípadne skús e?te ten môj postup, čo som tu prezentoval.

O pár dní tam nahodím i to video, ale e?te to chcem tro?ku checknúť. Mo?no niečo objavím, resp. lep?ie pochopím problém s importmi.

unpackschool.free-site-host.com/UnpackingSchool/FSG_2_0/solutions/eraser/import-table
unpackschool.free-site-host.com/UnpackingSchool/FSG_2_0/solutions/eraser/unpacked-fsg2-zip


E?te ma napadlo, či nemá? tie importy priamymi pointermi, tzn. u teba to mô?e fungovať OK, keby si to v?ak dal niekomu inému, resp. na iný OS, tak by to u neho nemuselo fachať.
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Master

  • [t4C]newbie child
  • VIP
  • *****
  • Posts: 615
Re: Unpack 02 - FSG v2.0
« Reply #7 on: May 07, 2007, 07:25:07 AM »
Presne tak,oep uz neni problem.Jak pises Conflicte,hodis bp na ten jmp a ses po dvou skocich na oep.Ted sem se dival na ty importy a ty sou celkem lahudka.Zatim sem nezkousel nijak extra je opravit.Ale kdyz sem si prenastavil RVA a size,tak mi jich vyjelo celkem dost.Jinak tech importu je tam dost.Podivej se na na zpracovani api GetProcAddress.Uvidis,ze tam je tech importu mnohem vic jak 4.

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: Unpack 02 - FSG v2.0
« Reply #8 on: May 07, 2007, 07:43:02 AM »
Inak by ma zaujímalo, prečo má notepad.exe base na 0x1000000. Tá hodnota sa mi zdá pre executable dosť neobvyklá.

Určite ste to na?li, ale pre istotu tá fukcia GetProcAddress, čo spomína Master, je volaná na lajne... Stačí hodiť BPX a sledovať, resp. počítať jednotlivé importované funkcie. A vy??ie je LoadLibrary, kde sú zase vidieť moduly, resp. systémové kni?nice.

010001D6    FF53 14         call near dword ptr [ebx+14]             ; kernel32.GetProcAddress
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Arab3h

  • Za svou pravdou si stuj!!
  • Newbie
  • *
  • Posts: 14
Re: Unpack 02 - FSG v2.0
« Reply #9 on: May 07, 2007, 09:50:30 AM »
Taky mam problemy s importy, doted si s tim hraju a nemuzu na to prijit. S ImportRec mi to taky nejde, jinak exe vypada krome tech importu funkcne

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: Unpack 02 - FSG v2.0
« Reply #10 on: May 07, 2007, 10:31:43 AM »
Nena?iel som spôsob, ako tie importy o?etriť iným spôsobom ne? ručne. Chvíľku som ?tudoval algo a pochopil som, prečo sú tie oddeľovacie thunky vlastne záporné hodnoty. Inak prepísať tých asi 5 hodnôt priamo v OllyDbg nie je a? taký veľký problém.
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

llAmElliK

  • [TiME4CRiME]
  • Administrator
  • VIP
  • *****
  • Posts: 960
Re: Unpack 02 - FSG v2.0
« Reply #11 on: May 07, 2007, 06:50:04 PM »
Zkuste kouknout na tuhle IAT - taghle by mozna mohla vypadat (mozna - jinak plne funkcni unpack)
TiME AND CRiME ARE ETERNAL-REVERSE ENGINEERiNG iS MODERN PHiLOSOPHY AND iSN'T CRiME
[TiME4CRiME]

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: Unpack 02 - FSG v2.0
« Reply #12 on: May 07, 2007, 07:54:27 PM »
v olly ty importy vidim, ale nevim proc je imprec nenajde?
co mam presne udelat?

// o minutu pozdeji: pockat.....

// o dalsich par minut pozdeji: vyreseno, v imprec sem to vsechno zmaknul. stejnej vypis jak llame.
« Last Edit: May 07, 2007, 08:09:11 PM by Conflict »

eraser

  • repe cmpsb
  • Senior Member
  • ****
  • Posts: 268
  • Kill malware!
Re: Unpack 02 - FSG v2.0
« Reply #13 on: May 08, 2007, 09:08:01 AM »
Conflict: Získal si tie importy bez zásahu v Olly, resp. bez nutnosti editovať? Resp. dá sa priamo v ImportREC určiť, ?e daný pointer je vlastne ukončovací thunk?

Btw. čo si spomínal to zbesilé klikanie na find OEP, tak som to vyskú?al a nič mi to neprinieslo. Inak, aké si pou?il nastavenie v ImportREC, resp. zadal si ručne OEP na 0x739D, RVA na 0x1000 a veľkosť na 0x3?? (z hlavy si nespomeniem na tú presnú hodnotu)?

llAmElliK: Aký tool si pou?il na výpis tých importov?
th3 r341 f4!1ur3 !5 wh3n y0u d0n't 134rn 4nyth!n6 fr0m 4ny 6!v3n 5!tu4t!0n
the real failure is when you don't learn anything from any given situation

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: Unpack 02 - FSG v2.0
« Reply #14 on: May 08, 2007, 10:06:56 AM »
Quote from: eraser
Conflict: Získal si tie importy bez zásahu v Olly, resp. bez nutnosti editovať? Resp. dá sa priamo v ImportREC určiť, ?e daný pointer je vlastne ukončovací thunk?

Btw. čo si spomínal to zbesilé klikanie na find OEP, tak som to vyskú?al a nič mi to neprinieslo. Inak, aké si pou?il nastavenie v ImportREC, resp. zadal si ručne OEP na 0x739D, RVA na 0x1000 a veľkosť na 0x3?? (z hlavy si nespomeniem na tú presnú hodnotu)?

llAmElliK: Aký tool si pou?il na výpis tých importov?

Mam urcite chybu v nastaveni Imprec, protoze sem to musel delat takhle (bez uprav v Olly):
v Olly sem nasel misto importuu (a1=01001000), zistil sem polohu prvniho ukoncovaciho dwordu FF FF FF 7F (a2=0100101C). Velikost importu s=a2-a1=1C. V Imprec RVA=1000 + Size=1C + Get Imports. Ostatni importy se delaj stejne, zistim misto pocatku a konce, zistim velikost, nahazu hodnoty do Imprec a GetImports.

odpovim za llAmElliKa: Staci dat Save Tree v Imprec.