PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : API-Encryption nicht immer möglich?



Perishand
09.07.2010, 16:16
Hallo,

ich habe eine Frage bezüglich API-Encryption. Kann es sein, dass man nicht alle Funktionen encrypten kann? Also mit der guten alten Methode mit GetProcAddress.

Sachen wie, GetModuleFileName funktionieren anscheinend nicht. Wenn jemand es besser weiß, bitte ich darum mich zu belehren!

l0dsb
09.07.2010, 16:28
Sein kann es. Aber was bringt dich darauf? "Funktioniert nicht" ist wie üblich keine ausreichende Fehlerbeschreibung. ;)

Perishand
09.07.2010, 16:34
Sobald ich die Funktionen mit dieser Methode versuche zu nutzen, also noch komplett plain ohne verschlüsselung, will ich das Programm starten, jedoch wird kein weiterer Code ausgeführt, also es wird einfach kein Code mehr ausgeführt, jedoch wird alles noch schön sauber compiliert.

Es ist mir also ein Rätsel, warum es nicht mit dieser Funktion funktioniert

l0dsb
09.07.2010, 16:41
Ist dein erster Satz unvollständig oder kommt mir das nur so vor? Deine API-"Encryption" lässt sich also wunderbar kompilieren, führt nur keinen Code mehr aus (ab wann, welchen Code, relevante Snippets)?

Hast du Fehlerabfragen drin, hast du schon mal debuggt?

G36KV
09.07.2010, 16:46
Man kann alle Windows APIs "crypten"... wenn es nicht klappt liegt der Fehler bei deinem schlechten Code oder an deiner Unfähigkeit MSDN zu lesen.

Ich tippe auf Möglichkeit 2 und das sollte dir helfen:
Du benutzt MSDN und suchst nach deiner Wunsch-API. Wenn du deine API gefunden hast scrollst du runter bis du einen grauen Kasten (Tabelle) siehst. In dieser Tabelle stehen sehr nützliche Infos... z.B. GetModuleFileNameW (Unicode) and GetModuleFileNameA (ANSI)

GetModuleFileName ist keine API.
GetModuleFileNameA ist eine API...

morph.
09.07.2010, 17:03
Du musst zusätzlich natürlich auch noch darauf achten, dass du mit LoadLibrary die richtige Library lädtst, die ebenfalls unten in der grauen Tabelle steht, in diesem Falle Kernel32.dll.

~morph