Spørgsmål:
Hvilken type kode ville producere denne samling med masser af springopgørelser?
GoldenWest
2018-11-08 12:21:41 UTC
view on stackexchange narkive permalink
  00EE16CC. E9 DFBB0000 JMP BinFile.00EED2B000EE16D1. E9 64AF0000 JMP <JMP.&MSVCP140D.?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@dd@>00EE16D6. E9 15DB0000 JMP BinFile.00EEF1F000EE16DB. E9 D0D40000 JMP BinFile.00EEEBB000EE16E0. E9 C9E60000 JMP <JMP.&KERNEL32.IsDebuggerPresent>00EE16E5. E9 D6AD0000 JMP BinFile.00EEC4C000EE16EA. E9 C1510000 JMP BinFile.00EE68B000EE16EF. E9 5CE70000 JMP BinFile.00EEFE5000EE16F4. E9 C7A50000 JMP BinFile.00EEBCC000EE16F9. E9 A4E60000 JMP <JMP.&ucrtbased._wsplitpath_s>00EE16FE. E9 AD950000 JMP BinFile.00EEACB000EE1703. E9 083B0000 JMP BinFile.00EE521000EE1708. E9 BBAE0000 JMP <JMP.&MSVCP140D.?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ>00EE170D. E9 7EBA0000 JMP BinFile.00EED19000EE1712. E9 B9BA0000 JMP BinFile.00EED1D000EE1717. E9 44870000 JMP BinFile.00EE9E6000EE171C. E9 AF5C0000 JMP BinFile.00EE73D000EE1721 $ E9 7A430000 JMP BinFile.00EE5AA000EE1726. E9 07E70000 JMP <JMP.&KERNEL32.GetProcAddress>00EE172B. E9 E07C0000 JMP BinFile.00EE941000EE1730. E9 6B520000 JMP BinFile.00EE69A000EE1735. E9 EEAE0000 JMP <JMP.&MSVCP140D.?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std>00EE173A. E9 EDE60000 JMP <JMP.&KERNEL32.FreeLibrary>00EE173F. E9 DCCF0000 JMP BinFile.00EEE72000EE1744. E9 FDAE0000 JMP <JMP.&MSVCP140D.?setg@?$basic_streambuf@DU?$char_traits@D@std@@@dd@>00EE1749. E9 42E70000 JMP BinFile.00EEFE9000EE174E. E9 41AF0000 JMP <JMP.&MSVCP140D.?widen@?$basic_ios@DU?$char_traits@D@std@@@dd@@QBED>00EE1753. E9 28860000 JMP BinFile.00EE9D80
00EE1758. E9 03C20000 JMP BinFile.00EED96000EE175D. E9 FEBF0000 JMP BinFile.00EED76000EE1762. E9 29CB0000 JMP BinFile.00EEE29000EE1767. E9 C4510000 JMP BinFile.00EE6930  

Jeg er reverse engineering en exe til en klasseopgave, og jeg prøver at pakke min hjerne omkring, hvilken slags kode der ville producere denne type samlingskode. Jeg har været ved det i et par dage nu. Jeg leder ikke efter et nøjagtigt svar, det ville være nyttigt, men mere i retning af, hvordan man går frem til løsning af omvendt en exe som denne. Tak og hjælp vil blive meget værdsat. Hvis nogen undrer sig over, bruger jeg OllyDB

Er du også sikker på, at dette er .text-sektion og ikke et andet afsnit som GOT / PLT?
Det ligner næsten et import-thunk-bord, men det vil bruge indirekte spring.
thunk bord lyder rigtigt! jeg tror ikke, det er et .tekstafsnit, fordi det linker til funktioner, eller tænker jeg forkert? Så jeg kan slå thunk-tabeller op, og jeg skal kunne se noget c ++ -kode?
Har du prøvet at bruge en debugger til at bestemme, hvilken kode der springer til dette afsnit? Der kan være et indlysende mønster, der belyser dets formål.
Jeg bruger ollyDB fyrer tid ive nogensinde gjort nogen omvendt engering, men jeg får fat på det. Opdagede lige nogle udskriftserklæringer og satte brudpunkter der og trådte gennem forsamlingen nu. Dette er bestemt importadressetabellen!
To svar:
Igor Skochinsky
2018-11-08 15:59:42 UTC
view on stackexchange narkive permalink

Dette ligner output fra Visual C ++ linker i inkremental linking mode . I denne tilstand tilføjer linkeren et afsnit med inkremental linking thunks (ILTs) i starten af ​​kodesektionen ( .text ), hvor hver tunk er et relativt spring (E9 xx xx xx xx) til en funktion.

Alle funktionsopkald i binær omdirigeres til den tilsvarende ILT i stedet for at pege direkte på målfunktionen. I tilfælde af mindre ændringer i kildekoden tillader denne tilgang linkeren at erstatte enhver funktion, der er blevet opdateret, og kun lappe ILT-hoppet for at pege på det nye funktionsorgan uden at skulle patch alle referencer til funktionen, hvilket fremskynder sammenkædningsprocessen betydeligt.

Incremental linking er som standard aktiveret i debug-builds.

Tak skal du have! Det er bestemt c ++, der hjælper meget, og jeg vil slå op, hvad du sagde i din kommentar, tak !!
ratchet freak
2018-11-08 20:19:30 UTC
view on stackexchange narkive permalink

Hvis de alle var til eksterne mål, ville det være stubberne for eksterne funktioner, når dynamisk indlæsning af dlls.

På denne måde kan du begrænse antallet af sider, der skal opdateres, når en ny dll indlæses. Hvilket lader opkaldskoden være positionuafhængig med hensyn til opkaldsmålet. Opkald til ekstern funktion sendes til denne side og videresendes til den aktuelle funktion.

Når dll indlæses (ved opstart, ved forsinkelsesindlæsning eller eksplicit) udfyldes siden baseret på den virtuelle adresse. Når en forsinkelsesbelastet funktion kaldes, videresendes den i stedet til en indlæsningsfunktion, som derefter videresendes til den aktuelle funktion.

det vidste jeg ikke tak !! syg fortsæt med at vende og se om jeg kan finde ud af denne exe! Tak for hjælp.
Importtunker bruger indirekte spring (FF 25 eller FF 15 IIRC), så dette er ikke det IMO
bestemt var thunk fra import adressetabel tror jeg


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 4.0-licens, den distribueres under.
Loading...