dinsdag 23 september 2008

Dll Import Table van executable aanpassen

In mijn vorige blogpost over de TC hack, had ik beloofd uit te leggen hoe je de hack (dll) vast in kunt bouwen, zodat het elke keer direct bij het starten van het programma actief wordt.

Dit is onder andere mogelijke door de "DLL Import Table" van de executable aan te passen. Deze table bevat namelijk de statisch gelinkte dlls en hun procedures (dus niet wat het programma zelf runtime dynamisch kan laden!). Deze tabel wordt door Windows in gelezen en alle dll's worden automatisch geladen. Door nu deze tabel aan te passen, kun je dus je eigen dll laden!

Na wat zoek en prutswerk kwam ik de volgende (werkende) tool tegen:
"Explorer Suite" (http://www.ntcore.com/exsuite.php ).
Een van de onderdelen van deze suite is de "CFF Explorer". Dit is een resource explorer, waarmee allerlei "resources" van een exe/dll bekeken en aangepast kan worden (icons, resourcestrings, etc). Een van de dingen die aangepast kan worden is de Import Table.

Hiermee heb ik met succes de "TCMain.exe" (exe van TC) aangepast, zodat het altijd mijn extra dll laadt. Bij het laden van de dll wordt direct de hook toegepast (zie vorige post).
Een simpel stappenplan:

  1. Bestand laden (TCMain.exe in dit geval)
  2. "Import Adder" selecteren
  3. Add knop en dll selecteren (TCHook.dll in dit geval)
  4. Een willekeurige functie van de dll selecteren (deze wordt toch niet aangeroepen, maar je hebt nu eenmaal 1 nodig)
    Vervolgens op "Import by Name" knop drukken
  5. Import table opnieuw bouwen
  6. En de aangepaste exe opslaan

Dat was alles!

Geen opmerkingen: