Spørsmål:
Hvordan håndterer du unntak i en feilsøking når du reverserer skadelig programvare?
user2142
2013-06-12 08:12:41 UTC
view on stackexchange narkive permalink

Jeg kom over noe skadelig programvare som hevet et unntak mens jeg gikk alene gjennom det. IDA gir meg muligheten til å overføre unntaket til applikasjonen eller ikke. Hva skjer egentlig her? Når vil jeg ikke overføre unntaket til applikasjonen?

En svar:
Jason Geffner
2013-06-12 08:41:57 UTC
view on stackexchange narkive permalink

Ofte vil skadelig programvare og / eller forvirret kode (for eksempel utpakking av stubber) gjøre noe som følgende:

  1. Sett opp en unntaksbehandler.
  2. Kast en unntak.
  3. Se om unntaksbehandleren fanget unntaket.

Hvis unntaksbehandleren ikke fanget unntaket, vet koden for feilsøking at det var koblet til en feilsøking "svelget" unntaket, og indikerer dermed at koden blir feilsøkt. For å skjule feilsøkingsprogrammet ditt fra slike deteksjonsteknikker, vil du alltid sende unntak til applikasjonen når du arbeider med skadelig programvare og / eller forvirret kode.

Pop-upen jeg så fra IDA advarte om at jeg kan miste kontrollen over applikasjonen. Kan du utvide svaret ditt for å snakke om hvordan det kan skje? Må jeg gå gjennom unntaksbehandleren?
@user2142 Det betyr at hvis unntak ikke håndteres riktig av applikasjonen, kan det knuse applikasjonen. Ja, det kan være lurt å gå gjennom det hvis du er interessert i hvordan det blir håndtert.
Et unntak fra dette er generell regel når analytikeren og / eller feilsøkingsprogrammet "fikk" unntaket til å skje. Hvis du for eksempel trinnvis går over en `pushf`-instruksjon, vil felleflaggbiten bli satt. Hvis flaggene senere poppes, kan IDA gi en advarsel i tråd med det du beskriver angående et enkelt trinns unntak. Du vil ikke gi den videre til applikasjonen.
du vil ikke alltid passere unntaket, fordi det kanskje ikke blir generert unntatt i nærvær av en feilsøkingsprogram (f.eks. CloseHandle (ugyldig)). I så fall avslører selve eksistensen av unntaket feilsøkingsprogrammet (se http://pferrie.host22.com/papers/unp2011.htm).


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...