Spørsmål:
Hvordan få dekryptert viruslegeme av Bolzano-virus ved hjelp av Ollydbg 1.10 feilsøking på Windows OS
user1744108
2013-07-15 05:59:04 UTC
view on stackexchange narkive permalink

Jeg installerte Windows NT 4.0 service pack 6 på vmware-spilleren. Så la jeg til Ollydbg 2 fra vmware delt mappe i windows NT. Jeg hentet ollydbg zip og kjørte ollydbg.exe. Jeg får denne feilen:

PSAPI.DLL ble ikke funnet. Dette biblioteket inneholder viktige prosess- og modulorienterte funksjoner for operativsystemer basert på NT-teknologi. Normal feilsøking er neppe mulig. Vil du fortsette?

Og så kan jeg ikke feilsøke programmet.

Jeg kan kjøre samme exe på verts windows 7 OS uten feil. På Windows NT kan jeg kjøre Ollydbg 1.10. Men når jeg prøver å feilsøke filen i Ollydbg 1.10, får jeg feil "prøv å endre eip eller overføre unntak til program". Etter å ha søkt fant jeg ut at jeg skulle installere Ollydbg 2.

Årsaken til at jeg bruker Windows NT: Jeg feilsøker en skadelig programvare, og det fungerer bare på Windows NT. Men det gir feil "prøv å endre eip eller pass unntak til program" som nevnt ovenfor.

Har du prøvd å overføre unntaket til programmet? Avsluttes eller fortsetter skadelig programvare som forventet?
Ja, selv jeg prøvde å passere unntaket i tilfelle Ollydbg 1.10. Men så peker EIP på adressen 00000000, og jeg fortsetter å få den samme feilen "prøv å endre eip eller gi unntak til programmet". Er det et problem med versjonen av Ollydbg? Når jeg bruker 1.10. Jeg søkte på denne feilen, og noen foreslo å bruke 2.0. Men i tilfelle 2,0 får jeg denne dll-feilen som er nevnt ovenfor
Har du prøvd å bruke dynamiske analyseverktøy uten feilsøking for å være sikker på at skadelig programvare til og med fungerer på Windows NT 4.0? Hvis den kjører riktig utenfor OllyDbg, men ikke kjører riktig inne i OllyDbg, kan det veldig godt være på grunn av anti-feilsøkingskode i skadelig programvare, ikke en feil i selve OllyDbg.
Jeg tror Bolzano-virus ikke kan kjøre på Windows NT-versjonen. Jeg prøvde å kjøre kjørbar malware-fil direkte, men jeg fikk unntak for brudd på tilgang.
To svar:
David Hoelzer
2013-07-15 07:00:04 UTC
view on stackexchange narkive permalink

Jeg tror at en stor del av svaret ditt finner du her: http://www.ollydbg.de/download.htm

Den relevante biten er:

Distribusjonen inkluderer filer PSAPI.DLL og DBGHELP.DLL som er Microsoft (R) omfordelbare filer. Disse filene skal bare installeres i katalogen der programvaren ligger. Du bør bare bruke den medfølgende PSAPI.DLL bare på Windows NT (R) 4.0. Du har ikke lov til å distribuere PSAPI.DLL eller DBGHELP.DLL atskilt fra programvaren.

Jeg forventer at den skal finne PSAPI.DLL riktig i den nåværende katalogen der du er henretter Olly. Bekreft at filen eksisterer. Hvis det gjør det, og det fortsatt mislykkes, foreslår jeg at du kopierer det til C: \ WINNT \ SYSTEM og gir det en gang til.

Det dette løser ikke, det bør du vurdere å dele navnet av skadelig programvare. Det høres ganske gammelt ut, så det kan ikke være så hemmelig! Det kan faktisk tillate oss å gi deg et mer spesifikt svar eller til og med prøve det selv for å løse det.

Jeg fant ut at Windows NT ikke har psapi.dll verken i Ollydbg-mappen eller i SYSTEM-mappen. Så jeg prøvde og kopierte dll fra vertsvinduet 7 til Windows NT (bare et forsøk) ollydbg og etter det SYSTEM-mappen, men det fungerer fortsatt ikke. Så er det problemer med Windows NT OS? Forresten feilsøker jeg polymorf malware Bolzano. Du kan få prøven fra http://oc.gtisc.gatech.edu:8080/search.cgi?search=bolzano
Nei. Det er noe galt med arkivet til Ollydebug du har. PSAPI.dll skal være i zip-filen. Jeg foreslår at du laster ned et nytt eksemplar.
Ollydbg versjon 1 kommer med psapi.dll. Versjon 2 gjør det imidlertid ikke
Jeg tror at han sa at han bruker Olly 1.10 som følger med DLL.
Jeg bruker Olly 1.10 som har PSAPI.dll i arkivet, men det er ikke tilfelle av Olly 2. Som foreslått av Jason, er det sjanser for at virus bruker anti-feilsøkingsteknikk, og at hvorfor jeg får "prøv å endre eip eller pass unntak til programfeil i tilfelle Olly 1.10. Eller viruset i seg selv kan ikke kjøres på Windows NT. Men jeg fant en artikkel om virus http://spth.virii.lu/29a4/29A-4.505.txt, og etter å ha sett på samlingskoden for virus tror jeg den kjører på Windows NT. Målet mitt er å få virus kroppen (kode som gjør faktisk infeksjon) etter at den er dekryptert.
Men kan vi anta at du med hell har eliminert det manglende PSAPI.DLL-problemet du hadde?
Jeg tror ja. Nå feilsøker jeg Bolzano-viruset på Ollydbg 1.10. Når jeg begynner å feilsøke etter en viss instruksjon, får jeg "prøv å endre eip eller gi unntak til programmet". Når jeg passerer unntak og fortsetter feilsøking, avsluttes prosessen. Jeg bruker eksempler på skadelig programvare herfra http://oc.gtisc.gatech.edu:8080/search.cgi?search=bolzano.
Forresten bruker jeg følger versjon av Bolzano virus MD5: f1835d569afd7b439ad41e5b97434043SHA1: ecc136810b48d747ac004611e7dffae4d9dac985SHA256: 134082310b60156117d6d720b6cbe7c70f4d78b73748d5e1b8bcf60188919b73OCID: 779568969Original Filename: Virus.Win32.Bolzano.4096.c
blabb
2013-07-16 03:29:26 UTC
view on stackexchange narkive permalink

Jeg har ikke NT4 vm
Også lenken din peker på flere eksempler
Gir nøyaktig MD5 / SHA / noen kontrollerbar kontrollsum av prøven kan eliminere uklarheter mens du svarer

her er en liten gjennomgang ved hjelp av grunnleggende hekseditor og en grunnleggende demonterer av hvorfor det kan være mulig for dette unntaket å bli generert.

  ved hjelp av winxp sp3 vm hxd hexeditor og ollydbg 1.10 i en grunnleggende dis-aaseembler-modus  

lastet ned den første prøven i openmalware

  MD5: f40547d521818f7c34754710f8603d5aSHA1: f9e3c0e824dda984046b4eedeef06f938805983bSHA256: a9beda469c835abbf416ea8da5462170eafdef215b96ac68523045600883855bOCID: 245478739Original Filnavn: Virus.Win32.Bolzano.5572  

drag falt til vpc 2007 XP SP3 vm

pakket ut med angitt passord infisert

dra falt i hxd hexeditor og verifiserte sjekksummer

  MD-5: F40547D521818F7C34754710F8603D5ASHA-1: F9E3C0E824DDA984046B4EED80 -256: A9BEDA469C835ABBF416EA8DA5462170EAFDEF215B96AC68523045600883855B  

alle tre kontrollsummen samsvarer ok

  WORD MajorSubsystemVersion WORD MinorSubsystemVersion Inneholder den minste driftssystemversjonen som kreves. En typisk verdi for dette feltet er 3.10 (som betyr Windows NT 3.1). 

http://msdn.microsoft.com/en-us/library/ms809762.aspx

bruker ollydbg som demonterer

  view -> file -> malware.exe -> høyreklikk -> speacial -> pe header  

ctrl + g 100

pe header shows

  00000148 0300 DW 0003; MajorSubsystemVersion = 30000014A 0A00 DW 000A; MinorSubsystemVersion = A (10.) 00000200 00100000 DD 00001000; VirtualSize = 1000 (4096.)
00000204 00100000 DD 00001000; VirtualAddress = 1000 < ----- 00000208 00020000 DD 00000200; SizeOfRawData = 200 (512.) 0000020C 00060000 DD 00000600; PointerToRawData = 600 00000228 00200000 DD 00002000; VirtualSize = 2000 (8192.) 0000022C 00200000 DD 00002000; VirtualAddress = 200000000230 00200000 DD 00002000; SizeOfRawData = 2000 (8192.) 00000234 00080000 DD 00000800; PointerToRawData = 800 < ------ 00000128 00100000 DD 00001000; AddressOfEntryPoint = 1000  

slik at vi kan begynne å demontere ved 0x600

  ctrl + g 600 høyreklikk -> demontere  

demontering

  1. 00000600 60 PUSHAD 2. 00000601 E9 FA0F0000 JMP 00001600  

virtuell størrelse på seksjonen er 1000 som vi så tidligere
så det hopper til neste seksjon
neste seksjon starter ved 0x800 som vi så tidligere

  ctrl + g 800 demontere  

demontering

  00000800 E8 D50E0000 RING 000016DA (402eda) 400000 +2000 + (16da-800) 

følger

  000016DA E8 00000000 RING 000016DF $ + 5 (402edf) 400000+ 2000+ (16df-800) 000016DF 5D POP EBP ebp vil være 402edf 000016E0 81ED DF0E0000 SUB EBP, 0EDF ebp vil være 402000000016E6 C3 RETN vil gå tilbake til 805 eller 402005  

ctrl + g 805 demontere

  00000805 BF 000C0100 MOV EDI, 10C000000 080A B9 00010000 MOV ECX, 1000000080F 33C0 XOR EAX, EAX00000811 F3: AE REPE SCAS BYTE PTR ES: [EDI] skanner alle byte fra 10c00 til 10d00 for 0 00000813 75 0C JNZ KORT 00000821 hvis alt ikke null går til win95 / 9800000815 BE 2D MOV ESI, 112D win nt0000081A BF 0000F077 MOV EDI, 77F00000 k32 base
0000081F EB 0A JMP SHORT 0000082B00000821 BE 25110000 MOV ESI, 1125 win 95/9800000826 BF 0000F7BF MOV EDI, BFF70000 k32 base  

setter basen til kernel32.dll til edi for byte-skanning av pupiller
ser ut om alle 100 byte som starter ved 10c00 er null
hvis de er null sett kjerne base til 77f00000 (vinn nt k32 base no aslr fixed)
annet til bff70000 (vinn 95/98 kernel32 base no aslr fixed)
esi til noen offset

  (esi = 1125 eller 112d) (ebp = 402000) 40312d / 25 1925 eller 192d (800 + 1125 eller 112d) 0000082B 03F5 ADD ESI, EBP (så esi blir enten 403125 eller 40312d) 0000082D 89BD C8170000 MOV DWORD PTR SS: [EBP + 17C8], EDI sparer pekerkjernebasen gjett hvorfor ?? 00000833 BA 00000400 MOV EDX, 4000000000838 FC CLD00000839 B9 08000000 MOV ECX, 80000083E 56 PUSH ESI0000083F 57 PUSH EDI00000840 F3: A6 REPE CMPS BYTE PTR ES: [EDI], BYTE PTR>00000800000F42 PF43 

sammenligner byte mønster i k32 dll

for 95/98 dette mønsteret

  00001925 C2 0400 RETN 400001928 57 PUSH EDI00001929 6A 22 PUSH 220000192B 2BD2 SUB EDX, EDX  

for win nt dette mønsteret

  0000192D C2 0400 RETN 400001930 55 PUSH EBP00001931 8B4C24 0C MOV ECX, DWORD PTR SS: [ESP + C]  

hopper til ok eller ikke ok

  00000844 74 0A JE SHORT 00000850 `høyre bruker med høyre os hopp`00000846 47 I NC EDI00000847 4A DEC EDX00000848 0F84 CD000000 JE 0000091B `feil bruker med feil os hopp`
0000084E ^ EB E9 JMP KORT 00000839  

hvis den finner at mønsteret vil gå til 850

annet 91b

ved 91b er det

  0000091B E8 BA0D0000 CALL 000016DA  

så dette vil gå tilbake til 920 (se ovenfor retn til 402005)

  00000920 8B5424 20 MOV EDX, DWORD PTR SS: [ESP + 20] 00000924 B9 40000000 MOV ECX, 4000000929 83EA 05 SUB EDX, 50000092C BE 4F180000 MOV ESI, 184F  

Dette vil returnere til kjernen eller avslutte trådadressen (pushad == 0x20)
alt annet er søppel
exe inneholder ingenting ved 204f til 224f vil bare gå ut via retn
(184f + 800 ecx = 40 to lodsd = 80 dwords = 200 byte = 224f)

hvis regionen sammenlignet ok med retn-verdi - 5 (se sub edx, 5)
appen vil krasje og ollydbg kan gi den advarselen

  00000931 03F5 ADD ESI , EBP 00000933 AD LODS DWORD PTR DS: [ESI] 00000934 3BC2 CMP EAX, ED X00000936 AD LODS DWORD PTR DS: [ESI] 00000937 74 04 JE KORT 0000093D00000939 ^ E2 F8 LOOPD KORT 000009330000093B 61 POPAD0000093C C3 RETN0000093D 8985 47010000 MOV DWORD PTR SS: [EBP + 14743] 6100 00009300 0 < ---- applikasjon vil krasje 0000094B C3 RETN eip er ikke gyldig eller 0  

ollydbg vil vise ikke vet hvordan du skal gå fordi minne på adresse 0 ikke er lesbart, prøv å endre Eip eller pass unntak til programmet hvis det når hit

demontering ved 850 eller 402050

  00000850 83C7 03 ADD EDI, 3 legg til 3 til bytepattern adresse 00000853 BE E70E0000 MOV ESI, 0EE7 00000858 03F5 ADD ESI, EBP 402ee7 = 16e7 (ee7 -800 + 1000) 0000085A 8BC6 MOV EAX, ESI
0000085C 83C0 07 ADD EAX, 7 16e7 + 7 = 16ee  

byte mønster ved 16ee

  000016EE 43 72 65 61 74 65 46 69 6C 65 4D 61 70 70 69 6E CreateFileMappin000016FE 67 41 gA  

demontering videre

  0000085F 50 PUSH EAX ** skyver streng CreateFileMapping ** 00000860 8B85 C8170000 MOV EAX, DWORD PTR SS: [EBP + 17C ** 8] 00000866 50 PUSH EAX ** skyver kjernebasen 00000867 FFD7 CALL NEAR EDI (kan du gjette ?? hva api ??)  

prøv å gå fremover en bit :)

hvis du oppdaterer kernel32-baseadressen slik at den passer til xp kernel32 base @ EBP + 17C8 (dvs. si 0x7c800000 i stedet for den hardkodede 77f00000), kan du tvinge prøven ovenfor til å kjøre i xp vm uten behov for NT (hvis du gjettet kan du tilpasse EDI riktig adresse og infiser xp også
Jeg la merke til artikkelen du nevnte i kommentaren din, den snakker ikke om viruset den inneholder fullstendig kildekode for viruset. også om mulig endre tittelen på spørsmålet til noe sånt som hvordan du feilsøker bolzano-virus ved hjelp av ollydbg 1.10 i nt vm eller lignende
Jeg tror Bolzano-virus ikke kan kjøre på Windows NT-versjonen. Jeg prøvde å utføre kjørbar malware-fil direkte, men jeg fikk unntak for brudd på tilgang.
Jeg bruker SP 6 i Windows NT 4.0. Jeg fant http://www.liutilities.com/malware/computer-virus/w32-bolzano/ artikkel. Det nevnes her at "Det angriper også Windows NT-filsystemet. Men hvis du har en høyere versjon av Windows NT som versjon 3.50 til 4.0 med servicepakker, trenger du ikke å bekymre deg for dette virusets angrep". Så er det fordi OS, jeg får feilen?
Når jeg feilsøker skadelig programvare, skal jeg til "riktig operativsystem med riktig brukerhopp", for når jeg setter brytpunkt på 00000850 83C7 03 ADD EDI, 3, kommer feilsøkingsprogrammet til dette trinnet. Men når programmet kommer til 00000867 FFD7 CALL NEAR EDI og api kalt er "FindNextFileA" får jeg EIP-relatert feil.
gjettet du hva edi skulle ha fra kommentaren din, jeg tror du ikke har gjettet det riktig, legg tilbake hva du endret edi til når du utfører den for første gang
Før utførelse av ADD EDI, 3, pekte det på 77F13FB0 når ADD-instruksjon ble utført EDI = 77F13FB3 som er KERNEL32.GetProcAddress. Så her peker EDI på KERNEL32.GetProcAddress
Bra så nå hvis den samtalen mislykkes, tenk på årsakene til at den mislykkes, gir du riktige argumenter til den samtalen hvilke argumenter tar GetProcAddress ()? er de tilgjengelige i stabelen hvis de er riktige, og hvis samtalen fremdeles mislykkes når du STEPOVER samtalen, har du TRINTET deg inn i samtalen og funnet ut hvorfor den mislyktes? kan du oppgi den eksakte NTSTATUS for feilen, kan du finne hva blir NTSTATUS konvertert til når samtalen går tilbake til brukermoduskoden din? kalles det gjentatte ganger hvis ja hvor mange ganger og hva er stakkparametrene på hver samtale (500 tegngrense :( nådd)


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...