Pitanje:
Kako provjeriti je li ELF datoteka UPX pakirana?
qbi
2013-03-23 04:31:47 UTC
view on stackexchange narkive permalink

Imam ELF datoteku i želim znati je li upakirana u UPX. Kako mogu otkriti UPX kompresiju u GNU / Linuxu?

UPX od vanilije ili bilo kakva moguća preinaka UPX-a?
Mislim da je to vanilija UPX-
četiri odgovori:
#1
+11
0xC0000022L
2013-03-23 04:54:03 UTC
view on stackexchange narkive permalink

U redu, pod pretpostavkom da vanilija UPX treba biti u redu otkrivanjem nizova UPX! ili UPX0 . Koliko se sjećam, ovo bi također radilo i na sustavu Windows.

Dakle, radi se o jednostrukoj ljusci poput:

  grep UPX \! <filename>  

ili

  grep UPX0 <filename>  

... pod pretpostavkom GNU verzije grep ovdje.


Druga metoda, ali koja koristi isti princip:

  $ hexdump -C <filename> | grep -C 1 UPX000000a0 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 | .......... ..... | 000000b0 c3 af e9 18 55 50 58 21 20 08 0d 16 00 00 00 00 | .... UPX! ....... | 000000c0 a0 fd 16 00 a0 fd 16 00 38 02 00 00 c6 00 00 00 | ........ 8 ....... | --0000cf60 fe 61 03 83 78 b5 54 03 67 8b 85 2d ca a8 12 3c | .a..xTg.-... < | 0000cf70 44 ad bc 12 ab 7e 86 55 50 58 30 0e 01 ee 7c 64 | D .... ~. UPX0 ... | d | 0000cf80 00 f7 d1 80 4a 11 03 58 6e ac 0d 01 ff 92 83 e8 | .... J..Xn ....... | --000544e0 73 20 66 69 6c 65 20 69 73 20 70 61 63 6b 65 64 | datoteka je spakirana | 000544f0 20 77 69 74 68 20 74 68 65 20 55 50 58 20 65 78 | s UPX ex | 00054500 65 63 75 74 61 62 6c 65 20 70 61 63 6b 65 72 20 | izvodljivi paker | 00054510 68 74 74 70 3a 2f 2f 75 70 78 2e 73 66 2e 6e 65 | http: // upx. sf.ne | 00054520 74 20 24 0a 00 24 49 64 3a 20 55 50 58 20 33 2e | t $ .. $ Id: UPX 3. | 00054530 30 38 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 | 08 Copyright (C) | --00054e40 7d 24 24 92 b7 0c 7f 12 01 a8 24 49 92 ff 00 00 |} $$ ....... $ I .... | 00054e50 00 00 55 50 58 21 00 00 00 00 00 00 55 50 58 21 | ..UPX! ...... UPX! | 00054e60 0d 16 08 07 80 44 b5 80 b9 9a 8a d9 a0 08 00 00 | ..... D. ......... |  
Također možete jednostavno pokušati pokrenuti `upx -l` na njemu.
#2
+7
joxeankoret
2013-03-24 19:24:06 UTC
view on stackexchange narkive permalink

Ne preporučujem vam da se oslanjate na nizove ili nazive odjeljaka koje možete pronaći. Obično će to označavati da je datoteka spakirana s UPX-om, ali, posebno ako analizirate zlonamjerni softver, to se može učiniti kako bi vas zavaralo. Moja je preporuka potražiti ulaznu točku i pronaći uzorak sličan ovom:

  0x00023b60; FUNKCIJA start0x00023b60 (01) 60 PUSHA 0x00023b61 (05) be00904300 MOV ESI, 0xHARDCODED_VIRTUAL_ADDRESS0x00023b66 (06) 8dbe0080fcff LEA EDI, [ESI-0x38000] 0x00023b6c (ED) 0b0b0b0b0b0b0b0b0b0e0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0bbbbbbbbbbbbbbbbbbbbddbbbbddbbbbb.db.b.b.b.b.b. 1 

U osnovi pronađite PUSHA, MOV ESI, VIRTUAL_ADDRESS, LEA i JMP.

#3
+5
rev
2013-03-24 17:54:49 UTC
view on stackexchange narkive permalink

U inačicama Linux / Unix, naredba stringova pomogla mi je identificirati neke pakere poput UPX, Aspack, NSPack, NTKrnl, PeCompact, Themida, itd. Svi ovi pakeri obično ostavljaju ugrađene nizove u izvršnoj izvršnoj datoteci što pomaže prepoznati vrstu pakera. Doduše, autor datoteke elf mogao bi namjerno uvesti iste nizove kako bi vašu analizu izbacio iz koloseka. Ovo bih samo koristio kao početnu točku u svojoj analizi.

Evo nekih identifikacijskih nizova koji su mi pomogli da identificiram vrstu pakirača.
UPX - UPX0, UPX1, UPX2
Aspack - aspack, adata
NSPack - NSP0, NSP1, NSP2
NTKrnl - NTKrnl Security Suite
PECompact - PEC2, PECompact2
Themida - Themida, aPa2Wa

Također, naredba datoteke identificira i neke uobičajene formate pakiranja.

Ako sumnjate da je datoteka definitivno prepuna UPX-a, preporučio bih prijedlog 0xC0000022L.

#4
+5
Ange
2013-03-26 21:25:20 UTC
view on stackexchange narkive permalink
  1. nabavite UPX
  2. napravite vlastite ELF-ove prepune UPX-a, s različitim opcijama (LZMA, NRV, ...)
  3. Kao UPX je lako izmijeniti, a vrlo često se mijenja, krpi ili čak lažira, uspoređujući započinjanje koda, olakšat će provjeru je li vaš cilj zaista UPX pakiran i je li ovo uistinu izvorna UPX verzija ili je na bilo koji način izmijenjen.
To je zapravo izvrsna poanta, ali čini je prilično zamornom, jer čak i vanilija UPX ima toliko verzija. Ipak +1
u pravu ste, ali još uvijek je s njim moguće upravljati: vanilija UPX ima puno verzija, ali imaju malo varijacija u svom protoku, pa nisu bajtno identični, ali struktura je doista slična. obično pristojni UPX hack ima dodatni kod između glavnih dijelova, poput dekompresije i učitavanja uvoza. Ponovo sam prenio svoj stari [komentirani UPX IDB] (https://corkami.googlecode.com/files/upx-idb.zip), možda će mi to pomoći.


Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...