Problem mit fremder dll
-
Hi!
Ich habe mir eine .dll runtergeladen die anscheinend mal in VB programmiert wurde. Da liegt so ne .bas datei bei, die in VB wahrscheinlich sowas wie ne .lib in C++ ist.
In der .bas datei
ist die Funktion "extractMPQNumber" folgendermaßen definiert:Public Declare Function extractMPQNumber Lib "bncsutil.dll" _ (ByVal mpqName As String) As LongIch kann eigentlich kein VB, aber ich denke mal, dass die Funktion in C++ so aussehen müsste:
long extractMPQNumber (char* mpqName);Rufe ich die Funktion auf, kackt das Programm mit einer Debug fehlermeldung ab, von wegen das irgendwas mit dem ESP register nicht in Ordnung ist.
Hier mal ein bisschen Quellcode:
#include "stdafx.h" #include <windows.h> typedef long (DLLFUNCTION1PROC)(char* MpqName); typedef DLLFUNCTION1PROC *LPDLLFUNC; /* Zeiger auf exportierte Funktion */ LPDLLFUNC extractMPQNumber; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { HMODULE hLib = 0; long Didong = 0; hLib = LoadLibrary("C:\\bncsutil.dll"); if(!hLib) MessageBox(0,"dll nicht gefunden!",0,0); else extractMPQNumber = (LPDLLFUNC)GetProcAddress(hLib, "extractMPQNumber"); if (extractMPQNumber == NULL) { MessageBox(0,"Funktion nicht gefunden!!!",0,0); } else Didong = extractMPQNumber("IX86ver6.mpq"); //Hier kackts ab! FreeLibrary(hLib); return 0; }Was hab ich falsch gemacht? Das Problem ist, dass ich außer dieser .bas datei keinerlei dokumentationen hab.
-
stdcall
-
Ahh ich Idiot, da hätte ich eigentlich selber drauf kommen müssen. Das kommt davon, wenn man länger nicht programmiert
Danke schön. 
Tja, da sieht man mal, was ein Wort alles verändern kann.

-
Von Valhallalegends? BNet Hacking utility? Erzähl mal mehr...
Willst du damit den Key von D2 klauen oder einfach nur
einen illegalen Battlenetbot bauen? ^^
-
Nene, ich will keine keys klauen. lol

Ich möchte nur einen "illegalen" Bot machen.
Das battle.net bietet zwar die Möglichkeit sich direkt als Chatclient einzuloggen, das Problem ist aber, dass man damit in sogut wie keinen Channel reinkommt. Früher ging das mal, aber Blizzard hat alle öffentlichen Channels für Bots gesperrt. Ich glaube das lag damals daran, weil irgendwann jeder einen Bot hatte und viele einfach unsinn mit gemacht haben (spam, flood ect.)Damit ich aber trotzdem in öffentliche Channels komme, muss sich mein Bot als Starcraft, also das Spiel, ausgeben. Die Sache ist allerdings nicht so einfach, da bei der Anmeldung Server sowie Client einen Schlüssel (Token) austauschen woraus man dann eine HashID errechnen muss. Ist die falsch, wird man gekickt. Die bncsutil.dll enthällt die nötigen funktionen um die Hashes zu errechnen.
Damals, als "Normale" Bots noch nicht so eingeschränkt waren, wollte ich unbedingt mal einen eigenen Bot programmieren, da es mal einen Clan gab, die auch einen selbstprogrammierten hatten. Das ist einer der Gründe, warum ich überhaupt mit C++ angefangen hab damals.
Naja, später wurde halt alles eingeschränkt und ich hab in die Röhre geschaut. Die Typen von Valhalla haben nahezu das Komplette battle.net protokoll entschlüsselt. (frag mich nicht wie!)Jetzt hab ich aber die Chance es doch noch zu schaffen und die will ich jetzt nutzen.
Ich bin noch etwas am tüfteln, aber wenn du Fragen hast, bzw. wenn du auch einen Bot Programmieren willst frag einfach. 
-
Ich habe bereits einen geschrieben. Ich hoffe du zählst dich nicht zu den lustigen MVlern ^^
Meine D2-Zeiten sind lange vorbei.
Gibt es eigentlich noch den Drophack der auch alles aus dem Inventar rauswirft? Rate mal wer den geschrieben hat
