Kako koristiti stringove za izdvajanje skrivenog teksta iz binarnih datoteka u sustavu Windows

  • Započnite sa statičkom analizom: strings.exe/GNU stringovi, metapodaci i potpis
  • Ojačajte s FLOSS-om, PEStudio-om, ExifToolom i čitajte ADS s PowerShell-om
  • Koristite certutil za dekodiranje Base64/hex i istraživanje ASN.1 struktura
  • Detekcija steganografije pomoću ZWSP-Tool-a, CyberChefa, steghide-a i binwalka

Kako koristiti stringove za izdvajanje skrivenog teksta iz binarnih datoteka u sustavu Windows

Kada otvorimo binarnu datoteku Windows, može izgledati kao nerazumljiva hrpa bajtova, ali Često je čitljiv tekst skriven od običnog pogledaOvi nizovi znakova otkrivaju rute, nazive biblioteka, poruke od pogreška, indikatore kompilacije, pa čak i neprocjenjive forenzičke tragove. Njihovo brzo izdvajanje uz pomoć pravih alata pomaže nam da shvatimo o čemu se radi u izvršnoj datoteci, bez potrebe za otklanjanjem pogrešaka ili rastavljanjem.

U ovom praktičnom i dobro utemeljenom obilasku vidjet ćete kako koristiti strings.exe (Sysinternals) i njegov Linux pandan, kako vam pomoći u PowerShell za struganje sadržaja (uključujući NTFS streamove), kako interpretirati signale iz potpisi i certifikatii na što treba paziti kada je tekst kamufliran steganografija ili tehnike zamagljivanja. Osim toga, pregledat ćemo ključne alate kao što su certutil, PEStudio, ExifTool, SIROVA SVILA, šetnja smećem ili apartman ZWSP-Alat za nevidljive znakove, tako da možete centriraj udarac od prve minute.

Što su stringovi i zašto su važni u binarnom sustavu?

Lanac nije ništa više od niz bajtova interpretiraju se s kodiranjem (ASCII, UTF-8, UTF-16/Unicode, itd.). U binarnim datotekama sustava Windows PE pojavljuju se prirodno: nazivi datoteka uvezene funkcije, poruke za korisnika, rute, XML manifesti, identifikatori certifikata ili DOS stub upozorenja poput "Ovaj program se ne može pokrenuti u DOS načinu rada". Sve se to računa: što program radi, što mu je potrebno i što poziva.

Da izvršna datoteka prikazuje pozive poput Učitaj knjižnicu, GetProcAddress o Je liDebuggerPrisutan predlaže specifičnu dinamiku (učitavanje modula, Rješavanje API-ja za vrijeme izvođenja, provjere protiv otklanjanja pogrešaka). Reference na VeriSign, Microsoft ili OCSP/CRL upućuju na ugrađeni digitalni potpisI, iako izlaz ekstrakcije niza obično donosi šum i lažno pozitivne rezultate, kritički pogled nam omogućuje da dobijemo klasifikacijske trake vrlo vrijedno.

Vrste analiza i gdje započeti kako ne biste gubili vrijeme

Prije nego što se upustite u rastavljanje, vrijedi se orijentirati: rad na binarnim datotekama često se dijeli na statička analiza (neizvršeno), dinamičan (promatrajući njihovo ponašanje) i analiza koda (statičko/dinamičko) ako se bavite preokretanjem i ispravljanjem pogrešaka. Početak sa statičkom ima smisla: Brz je, siguran i omogućuje klasifikaciju uzorak ili izvršnu datoteku koju imate pri ruci.

Razuman tok uključuje: izračunavanje raspršivanja (SHA-256, itd.) za provjeru integriteta, identifikaciju vrste datoteke i njezine arhitekture (na primjer, da je PE32 32-bitna) i postavite izolirano okruženje. Rad u virtualnom stroju (Windows za dinamičke, Linux/Remnux za uslužne programe) pruža vam sigurnost i fleksibilnost; ako imate posla s više virtualnih strojeva, potvrđuje da je uzorak identičan u svima njima pomoću hash-a.

Utvrđeno je da je to PE binarni fajl, dodiruje nizovi za scratchŠtedi vrijeme i može otkriti sve, od internih poruka do mrežnih konfiguracija ili krajnjih točaka. Ako je izvršna datoteka poznata (jer dolazi iz repozitorija), možda već imate "spojlere"; s nepoznatim uzorcima, vrijednost je još veći.

Izdvajanje teksta u Windowsima pomoću strings.exe, FLOSS-a i još mnogo toga

Kako koristiti stringove za izdvajanje skrivenog teksta iz binarnih datoteka u sustavu Windows

U Windowsima najizravnija stvar je strings.exe iz Sysinternalsa. Ovaj uslužni program skenira datoteku i izbacuje čitljive sekvence Detektira. Koristite ga kao osnovu, a ako je izlaz previše šuman, oslonite se na filtere i usporedite s drugim alatima. Tipičan slučaj upotrebe bio bi:

strings.exe binario.exe > cadenas.txt

Naći ćete sve: od klasičnog DOS stuba do popisi DLL-ova uvezeno, manifest ugrađen u XML, reference na OCSP/CRL pa čak i imena tvrtki koje certificiraju. Cilj je odvojiti žito od kukoljaPostoje li poruke specifične za program?, značajne varijable?, putovi ili domene?, funkcije koje upućuju na mogućnosti?

  Kako omogućiti automatsko popunjavanje u Officeu: Excel, Outlook i još mnogo toga

Ako sumnjate na obfuskaciju ili pakiranje (UPX, jednostavni XOR preko podataka), pokušajte SIROVA SVILA (FireEye/FLARE). FLOSS pokušava otkriti nizove konstruirane za vrijeme izvođenja i dekodirano u hodu, nešto što strings.exe ne vidi. Ako FLOSS vrati samo stringove, možete naznačiti složenije zamagljivanje ili da uzorak jednostavno ne sadrži puno zanimljivog jasnog teksta.

Uvijek nadopunite vizualizatorima poput PEStudio i ExifTool za metapodatke: prvi grupira indikatore (uvoz, odjeljke, resurse, potpis), a drugi je zamjenski znak za bilo koju datoteku koja može nositi korisne metapodatke. usporediti rezultate između alata smanjuje lažno pozitivne rezultate.

Iz perspektive razvoja, ako ste zabrinuti zbog toga što će vaši logovi ili poruke biti izloženi u binarnoj datoteci, postoje strategije kao što su hashiranje literala prilikom kompilacije (metaprogramiranje/UDL), korištenje nizovi znakova/hex umjesto literala ili primjene zakrpa nakon izgradnje koji zamjenjuje tekst šifriranom verzijom. Svaki pristup ima svoje nedostatke: vremena kompilacije starije verzije, ograničena prenosivost (npr. VS2013 i C++14) ili složenost sačuvati integritet izvršne datotekeI budite oprezni: čak i ako obfuscirate, alati poput FLOSS-a ili dinamičke analize mogu rekonstruirati stringove tijekom izvršavanja.

Raditi istu stvar u Linuxu/WSL-u: naredba strings i neki trikovi

Ako preferirate Linux terminal (ili koristite WSL), imate naredbu žice iz GNU-a, s korisnim opcijama za fino podešavanje izlaza. Minimalna upotreba bi bila:

strings ejemplo.bin

Da biste zanemarili smeće i usredotočili se na lance određene veličine, povucite -n (ili ---bajtova):

strings -n 10 ejemplo.bin

Kada trebate znati gdje je svaki niz unutar datoteke, dodajte -t s heksadecimalnom ili decimalnom bazom:

strings -t x archivo.bin

Ako rukujete s puno binarnih datoteka, možete ih sve proslijediti odjednom, lanac s glavom za brzi pregled ili prisilno kodiranje s -e (npr. UTF-16LE na Windowsima):

strings archivo1.bin archivo2.bin | head -n 100
strings -e S archivo.bin

Ove osnove, u kombinaciji s grep/awk, omogućuju vam da tražiti uzorke specifične (URL-ovi, rute, ekstenzije, Yara-lajkovi). U prvom provjeravanju, uštede vremena su brutalan.

PowerShell za čitanje alternativnog NTFS sadržaja, binarnih datoteka i streamova

PowerShell nije samo za automatizaciju sistemskih zadataka: s Get-Content Datoteke možete pregledavati kao tekst ili bajtove, a također i čitati Alternativni tokovi podataka (ADS) na NTFS-u. Za veliku tekstualnu datoteku odaberite između standardnog (redak po redak) ili sirovog čitanja:

# Texto línea a línea
Get-Content -Path .\archivo.txt

# Todo el contenido en una sola cadena
Get-Content -Path .\archivo.txt -Raw

Kada ste zainteresirani samo kraj (npr. uzgoj trupaca), koristite -Rep o -TotalCount ograničiti:

# Última línea
Get-Content .\archivo.txt -Tail 1

# Primeras 5 líneas
Get-Content .\archivo.txt -TotalCount 5

Ako je datoteka binarna i želite je tako tretirati, dodajte -AsByteStream (bolje pored -Sirovo) primiti [bajt[]] i obraditi ga bez da PowerShell pokušava išta pretvoriti:

$bytes = Get-Content -Path .\binario.exe -AsByteStream -Raw
$bytes.Length

Prava slatka točka u NTFS-u su ADS: "skriveni" podaci koji koegzistiraju s glavnom datotekom. Možete popisati i čitati streamove pomoću parametra -Potok:

# Ver streams de un fichero
Get-Item -Path .\sospechoso.txt -Stream *

# Leer el stream primario y uno alternativo
Get-Content -Path .\sospechoso.txt -Stream ':$DATA'
Get-Content -Path .\sospechoso.txt -Stream 'NewStream'

Za točne putanje sa posebnim znakovima koristite -DoslovniPut. I zapamti to -Filtar, -Uključi y -Isključiti pomoći pročistiti serije datoteka bez potrebe za ponovnim izmišljanjem kotača.

  Najbolji profesionalni softver za kamere za Windows

Digitalni potpis, metapodaci i što vam certifikati govore

Prilikom izdvajanja nizova znakova uobičajeno je naići na imena CA (VeriSign, Thawte, Microsoft), CRL/OCSP putanje ili čak nizove manifesta. To sugerira da binarna datoteka moglo bi se potpisatiU sustavu Windows provjerite svojstva datoteke i ako želite nešto što se može skriptirati, preuzmite iz Get-AuthenticodeSignature u PowerShellu kako bi se potvrdio potpis i njegova valjanost (opoziv, datum itd.).

Također vam može pomoći certutil, švicarski nožić za certifikate ugrađene u Windows. Za vašu namjenu (pregled teksta i strukture), ističe se sljedeće:

  • -istovariti: Ispisuje podatke o datotekama i konfiguraciji (korisno za pregled ASN.1 atributa i povezanih nizova).
  • -asn: Analizira ASN.1 sadržaj iz .cer, DER ili PKCS#7 datoteka.
  • -dekodiranje / -kodiranje: dekodira/kodira Base64 i -decodehex / -encodehex za heksadecimalni sustav.
  • -hašfile: izračunava hash datoteke (MD5, SHA1, SHA256, itd.).
  • -trgovina, -provjeristore, -viewstorepregled skladišta certifikata.
  • - potvrditiProvjera lanaca certifikata i CRL-ova.

Praktični primjeri koji će vam uštedjeti vrijeme: dekodiranje Base64 bloba koje ste izdvojili s nizovima znakova kako biste vidjeli ima li teksta s druge strane; ili napravite -istovariti sumnjive datoteke za lociranje vidljiva polja koji su nizovi propušteni:

# Decodificar Base64 a binario
certutil -decode in.txt out.bin

# Decodificar hex a binario
certutil -decodehex in.hex out.bin

# Hash rápido
certutil -hashfile binario.exe SHA256

# Vista ASN.1
certutil -asn firma.der

Budite oprezni s potpisima: činjenica da izvršna datoteka sadrži reference na certifikate ne znači da provjera je valjanaIstekli ili opozvani certifikati uzrokuju da sustav ne vjeruje potpisu, čak i ako binarna datoteka zadržava metapodatke s nazivima CA. Ova razlika je također pokazatelj koje treba uzeti u obzir prilikom trijaže.

Kada je tekst tu, ali nije vidljiv: steganografija u datotekama

Kako koristiti stringove za izdvajanje skrivenog teksta iz binarnih datoteka u sustavu Windows

Ne dolazi sav "skriveni" tekst iz PE-a: često je skriven u dokumentima, slikama ili audiozapisima od strane steganografijaVažno je znati prepoznati uobičajene tehnike kako se ne bi previdjele skrivene poruke koje bi binarni fajlovi mogli preuzeti ili generirati.

En tekst ravnine, klasična kamuflaža koristi dodatni razmaci/tabulatori na kraju retka (0/1), nevidljivi Unicode znakovi kao što su Spojnik/nespojivac nulte širine, ili zamjene za homoglifi (gotovo vizualno identična slova, različit kod). Alati kao što su CyberChef Koriste se za brojanje znakova i demaskiranje. Ako želite odmah pronaći nevidljive, ZWSP-Alat čini to puno lakšim:

$ git clone https://github.com/TwistAtom/ZWSP-Tool.git
$ cd ZWSP-Tool
$ chmod +x install.sh
$ ./install.sh

# Detectar ZWSP con marcadores
$ zwsp-tool detect -P path_to_file/suspicious_text.txt
# Limpiar ZWSP
$ zwsp-tool clean -P path_to_file/suspicious_text.txt
# Incrustar/extractar con cifrado AES
$ zwsp-tool -o result.txt embed -p "Public text" -m "Private text" -e AES
$ zwsp-tool extract -P path_to_file/text.txt -e AES
# Fuerza bruta de ZWSP
$ zwsp-tool bruteforce -P path_to_file/suspicious_text.txt

En oprema, postoje skrivene slike u spektrogram, različiti podaci po kanalu ili ID3 metapodaci s iznenađenjem. S Sonic Visualizer, smjelost y SoX Možete vizualizirati, izolirati kanale i pretvoriti ih u spektrogram. Ako zvuči kao modemski ili vrlo "digitalni" šum, mogao bi biti kodirani podaci a ne glazba. Za zvuk/slike općenito, steghide šifriranje/skrivanje i oporavak lozinkom; stegsolve y stegonline primijenite brze filtere; stegseek automatizira brute-forsiranje steghide lozinki.

  Kako omogućiti skriveni administratorski račun u sustavu Windows 11

En lik, uz zasebnu provjeru R/G/B/A kanala, klasik je LSB (najmanje značajni bitovi) za skrivanje proizvoljnih datoteka bez promjene izgleda. Ne zaboravite EXIF (koordinate, datum, kamera) i da su neki slučajevi jednostavni kao još jedna zalijepljena datoteka na kraju; zbog toga, šetnja smećem To je čudotvorni lijek, iako u PNG-u postoji lažni pozitivi česte.

Savjeti za sve aspekte: usporedite vidljiva u odnosu na stvarnu duljinu iz teksta, slušajte audiozapise odvojeni kanali, provjeri abnormalna veličina datoteka i budite oprezni s previše lijepim podudaranjima u velikim binarnim datotekama. Uvijek provjerite s dva alata drugačije prije nego što se otkriće proglasi valjanim.

Iznad stringova: pakiranje, zamagljivanje i entropija

Ako se ne ispisuju korisni nizovi znakova, izvršna datoteka može biti zapakirano ili prikrivenoUPX je lako otkriti i raspakirati; primjenjuju se i druge tehnike. XOR/jednostavno šifriranje podacima i resursima. Ovdje vam FLOSS pomaže s "dinamičkim" nizovima znakova i analizom PE sekcije i njihova entropija daje jake signale: visoka entropija obično ukazuje komprimirani ili šifrirani podaciAlati poput PEStudia vam omogućuju to čitanje jednim klikom.

Zapamtite da postoji API-ji za rješavanje uvoza za vrijeme izvođenja, pa čak i ako ne vidite jasne nazive funkcija, to ne znači da binarna datoteka nema mogućnosti. Vrijeme je za korelaciju: ono što se ne pojavljuje u nizovima znakova može se pojaviti u dinamički tragovi (dodirnute datoteke, izmijenjeni registar, mreža, API povezivanje).

Predloženi tijek rada za izdvajanje korisnog teksta i signala

Pristup koji rijetko ne uspijeva i izbjegava gubljenje sati: 1) Hash i ID iz datoteke (tip/arhitektura). 2) Ekstrakcija žice sa Sysinternals i GNU; filtriranje po duljini i pretraživanje patrones. 3) Pokušajte s SIROVA SVILA ako sumnjate na nizove znakova u okruženju izvođenja. 4) metapodataka s PEStudio i ExifTool programima, te potpišite s PowerShell/properties. 5) certutil za dekodiranje Base64/hex blobova i ispis ASN.1. 6) PowerShell ADS za alternativne streamove. 7) Ako binarna datoteka ostavlja artefakte (slike, zvuk, dokumente), stego set alata (CyberChef, ZWSP-Tool, steghide, binwalk, Sonic Visualiser). 8) Signali od zamagljivanje/entropija i, ako je prikladno, prijeći na dinamičku analizu.

Još nekoliko savjeta o certutil-u koje je korisno imati pri ruci pri radu s nizovima znakova i ugrađenim sadržajem: -URLcache za provjeru/brisanje CRL/URL predmemorije; -syncWithWU y -generirajSSTFromWU prilikom revizije pouzdanih korijena; i -provjeriCTL za pouzdane popise (AuthRoot/Disallowed). Ovo nisu koraci prvog utjecaja za izdvajanje teksta, ali jesu kontekstualizirati puno kada se reference na PKI pojavljuju između nizova.

Napokon, sjetite se toga Get-Content Ima parametre kao što su -Broj čitanja za podešavanje performansi i kombinacije kao što su -Čekati (zapisivanje zapisa) koji vam, u kombinaciji s okomitim crtama i regularnim izrazima, omogućuju postavljanje moćna sita s vrlo malo koda.

Radeći na ovaj način, za nekoliko minuta imat ćete jasan pregled: što je vidljivo golim okom, što je prikriveno, koji se metapodaci podudaraju i što praktične tragove Vrijedi nastaviti s više alata ili u sandboxu. I najbolje od svega: bez dodirivanja ijedne linije internog koda.