HuHu, ich "versuche" mal die Kal-Sektion zu verbessern jeder nder irgendwelche Code's für Kal hat kann sie hier mal posten, ihr könnt sie ja ruhig coden hat sogar noob schutz weil eh nicht jeder damit umgehn kann =) hehe
Dieser eine Code der Hochgeladen wurde:
Code:
//////////////////////////////////////////////////////////////////////
// ClientCore.cpp
// -------------------------------------------------------------------
// Default Client Dll entrypoint.
//////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include "CommonStructs.h"
#define EXPORT __declspec( dllexport ) __cdecl
#define PRIVATE __cdecl
#define BIND_TO_SERVER(x) server->##x##=(fn##x##)GetProcAddress(hModule,#x ##);
extern "C" {
BOOL EXPORT OnGameCommandLine(char* argv[], int argc);
WORD EXPORT OnPacketBeforeSent(LPBYTE pbPacket, WORD wLen);
WORD EXPORT OnPacketBeforeRecv(LPBYTE pbPacket, WORD wLen);
BYTE EXPORT OnGameKeyUp(BYTE iKeyCode);
VOID EXPORT OnUnitSelect(GAMEUNIT GameUnit);
BOOL EXPORT OnMapClick(PGAMEUNITCOORDS cClick);
}
BOOL PRIVATE OnClientStop();
BOOL PRIVATE OnClientStart();
#pragma comment(lib, "shlwapi.lib")
#include <shlwapi.h>
//////////////////////////////////////////////////////////////////////
// Global server struct holding pointers to exported functions
//////////////////////////////////////////////////////////////////////
FUNCTIONENTRYPOINTS *server;
HMODULE g_hModule; // New Global
char g_szModuleDir[MAX_PATH]; // New Global
//////////////////////////////////////////////////////////////////////
// Dll entry/exit
//////////////////////////////////////////////////////////////////////
BOOL APIENTRY DllMain(HMODULE hinstModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
char szTemp[MAX_PATH];
BOOL hResult = TRUE;
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// initiate client
g_hModule = (HMODULE)hinstModule;
GetModuleFileName( g_hModule, szTemp, sizeof(szTemp) );
PathRemoveFileSpec(szTemp);
sprintf( g_szModuleDir, szTemp );
// Create server/me struct
server = new FUNCTIONENTRYPOINTS;
// Bind exported functions from server
HMODULE hModule;
hModule = (HMODULE)GetModuleHandle("KalHackIt");
if(!hModule)
{
MessageBox(0,"Unable to find KalHackIt.dll in process",0,0);
return FALSE;
}
// Macros make this look a lot nicer :)
BIND_TO_SERVER(GameCommandLine);
BIND_TO_SERVER(GameCommandLinef);
BIND_TO_SERVER(GamePrintString);
BIND_TO_SERVER(GamePrintInfo);
BIND_TO_SERVER(GamePrintError);
BIND_TO_SERVER(GamePrintStringf);
BIND_TO_SERVER(GamePrintInfof);
BIND_TO_SERVER(GamePrintErrorf);
BIND_TO_SERVER(ClientSendPacketToServer);
BIND_TO_SERVER(ClientSendPacketToClient);
BIND_TO_SERVER(UserSendPacketToServer);
BIND_TO_SERVER(UserSendPacketToClient);
BIND_TO_SERVER(EnumUnits);
BIND_TO_SERVER(FindUnitByID);
BIND_TO_SERVER(FindUnitByName);
BIND_TO_SERVER(GetUnitName);
BIND_TO_SERVER(GetUnitID);
BIND_TO_SERVER(GetUnitCoord);
BIND_TO_SERVER(GetUnitType);
BIND_TO_SERVER(GetNextMonster);
BIND_TO_SERVER(GetPlayerUnit);
BIND_TO_SERVER(GetPlayerInfoStruct);
BIND_TO_SERVER(GetUnitLife);
BIND_TO_SERVER(GetUnitMaxLife);
BIND_TO_SERVER(GetPlayerLife);
BIND_TO_SERVER(GetPlayerMaxLife);
BIND_TO_SERVER(GetHeight);
BIND_TO_SERVER(teleport);
BIND_TO_SERVER(serverteleport);
BIND_TO_SERVER(GetSocket);
hResult = OnClientStart();
break;
case DLL_PROCESS_DETACH:
// kill client
hResult = OnClientStop();
delete[] server;
break;
}
return hResult;
}
//////////////////////////////////////////////////////////////////////
// Stubfunctions for 'property get' functions.
//////////////////////////////////////////////////////////////////////
// OnClientCommandLine
// -------------------------------------------------------------------
// The modules own extension of the command line interface. Any custom
// commands you add are parsed here.
//
// Return value should be TRUE, but it is not used at this
// time.
//
// Arguments when we get here:
// argv[0] Name of module
// argv[1] Name of command (If supplied)
// argv[2 ... n] The rest
//
// Syntax in the game: .<module> <arguments>
//////////////////////////////////////////////////////////////////////
BOOL EXPORT OnGameCommandLine(char* argv[], int argc)
{
// Check if user supplied anything at all, if not assume help...
if (argc==1)
argv[argc++]="help";
MODULECOMMANDSTRUCT* mcs=ModuleCommands;
while (mcs->szName) {
if (!stricmp(mcs->szName, argv[1]))
break;
mcs++;
}
char *p,*t,*msg,*fMsg;
fMsg=new char[256];
//
// Is this a built-in function ?
if (mcs->szName) {
//
// If functions returns false, show usage help
if (!mcs->pFunc(argv, argc)) {
t=new char[strlen(mcs->szUsage)+1];
server->GamePrintInfo("Usage:");
sprintf((char*)t, "%s", mcs->szUsage);
if (strlen((char*)t))
{
msg=p=t;
while (*p != 0) {
if (*p == '\n')
{
*(p++) = 0;
sprintf(fMsg, ".%s %s", argv[0], msg);
server->GamePrintInfo((char*)fMsg);
if (*p != 0)
msg = p;
} else
p++;
}
sprintf(fMsg, ".%s %s", argv[0], msg);
server->GamePrintInfo((char*)fMsg);
}
delete t;
}
} else {
// Unknown command, show catch-all help phraze.
t=new char[128];
sprintf(t, "Unknown command '%s %s' - try '.%s help' to get help.",
argv[0], argv[1], argv[0]);
server->GamePrintError(t);
delete t;
}
delete fMsg;
return TRUE;
}
//////////////////////////////////////////////////////////////////////
// OnClientCommandHelp
// -------------------------------------------------------------------
// Our default help function.
//
// Syntax in the game: .<module> <arguments>
//////////////////////////////////////////////////////////////////////
BOOL PRIVATE OnGameCommandHelp(char** argv, int argc)
{
// If command line is longer than 2, show usage for 'help'
if (argc>2) return FALSE;
char t[1024];
sprintf(t, "Available commands for %s:", argv[0]);
server->GamePrintInfo(t);
// Loop through ModuleCommands[] and print their names
for (int i=0; ModuleCommands[i].szName != NULL; i++)
{
sprintf(t, ".%s %s", argv[0], ModuleCommands[i].szName);
server->GamePrintInfo(t);
}
sprintf(t, "For help on a specific command, type .%s <command> help", argv[0]);
server->GamePrintInfo(t);
return TRUE;
}
function InjectLibrary(dwProcessID: DWord; pLibraryName: PChar): Boolean; stdcall;
var
dwProcessID2 : DWord;
dwMemSize : DWord;
dwWritten : DWord;
dwThreadID : DWord;
pLLA : Pointer;
pTargetMemory: Pointer;
begin
Result := False;
dwProcessID2 := OpenProcess(PROCESS_ALL_ACCESS,false,dwProcessID);
if (dwProcessID2 <> 0) then
dwProcessID := dwProcessID2;
dwMemSize := Length(pLibraryName)+1;
pTargetMemory := VirtualAllocExX(dwProcessID,nil,dwMemSize, MEM_COMMIT or MEM_RESERVE,PAGE_EXECUTE_READWRITE);
pLLA := GetProcAddress(GetModuleHandleA('kernel32.dll'),'LoadLibraryA');
if (pLLA <> nil) and (pTargetMemory <> nil) and (pLibraryName <> nil) then
begin
if WriteProcessMemory(dwProcessID,pTargetMemory,pLibraryName,dwMemSize,dwWritten) and
(dwWritten = dwMemSize) then
Result := CreateRemoteThreadX(dwProcessID,nil,0,pLLA,pTargetMemory,0,dwThreadID) <> 0;
end;
if (dwProcessID2 <> 0) then
CloseHandle(dwProcessID2);
end;
Grün falls du fragen zu c++ oder Delphi oder sonst was hat kannste sie hier auch posten oder auch jeder andre, das soll jetzt mal nen Support berreich werden für Kal der mit Programmieren zu tun hat, ich hoffe hier kommt nicht soviel gespamme etc. (=
2ie delphi dll injection wird bei kal nicht funktionieren, weil es kernel-treiber geladen wird, der das openprocess blockt.Außerdem glaube ich das, dass snippet ein altes von uall ist(CreateRemoteThreadX ..). Ich benutze dafuer immer meine funktion:
Code:
function InjectDllAtStartupA(szExecutable, szLibrary: PChar): Boolean;
var
si: TStartupInfo;
pi: TProcessInformation;
pOffset: pointer;
hKernel32, dwTID, hThread, rw: dword;
begin
FillChar(Si, Sizeof(si), 0);
Si.cb := Sizeof(si);
if CreateProcess(nil, szExecutable, nil, nil, False, Create_Suspended, nil, PChar(ExtractFilePath(szExecutable)), si, pi) then
begin
hKernel32 := loadlibrary(kernel32);
pOffset := VirtualAllocEx(pi.hProcess, nil, length(szLibrary), MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(pi.hProcess, pOffset, szLibrary, length(szLibrary), rw);
hThread := CreateRemoteThread(pi.hProcess, nil, 0, GetProcAddress(hKernel32, 'LoadLibraryA'), pOffset, 0, dwTID);
ResumeThread(pi.hThread);
result := hThread <> 0;
end
else
result := false;
end;
Hier noch was zum entschluesseln von *.dat files:
Code:
function EncryptFile(path, stable: string): string;
var
i, y: integer;
s: string;
datfile, table: TStringlist;
begin
if FileExists(stable) then
try
datfile := TStringList.Create;
table := TStringList.Create;
datfile.LoadFromFile(path);
table.LoadFromFile(stable);
for i := 0 to datfile.Count - 1 do
begin
s := datfile[i];
for y := 1 to length(s) do
begin
s[y] := char(StrToInt(Table[ord(s[y])]));
end;
datfile[i] := s;
end;
result := datfile.Text;
finally
FreeAndNil(table);
FreeAndNil(DatFile);
end
else
Showmessage('Failed to load table');
end;
[Guide] C++ Programmierung mit Lua 5.1 05/28/2011 - Coding Tutorials - 9 Replies Achtung dieser TUT ist aus m m o r p g - c o r e.
Da ich dort mit Chaosduckman ein und die selbe Person bin sollte das klar gehen.
Hi^^
Ich weiß das es für dieses Thema sehr viele Guides in google gibt, aber ich wollte mal eins zu elitepvpers bringen. Da das hier mein erster Guide ist freue ich mich über Feedback und Verbesserungs Vorschläge :-)
Aber nun fangen wir an:
1. History and Informations
1-1 Was ist Lua?
Hilfe bei Trainer Programmierung 03/06/2010 - Last Chaos - 3 Replies Hallo alle zusammen.
Ich bin dabei, mich mit der Materie der Trainer-Programmierung zu beschäftigen.
Ich habe schon ne ganze Menge Offsets rausgefunden und im Trainer verarbeitet. Ich möchte im Trainer mit anzeigen, welche Erfahrung und Zuneigung das Pet schon hat. Allerdings stolpere ich dabei über das Problem, dass es verschiedene Offsets für Drake und Pony gibt. Ich möchte aber nur die Eigenschaften des Tieres anzeigen, welches aktuell draußen ist. Wie finde ich einen "Schalter", also...
Problem bei Bot programmierung 02/01/2010 - WoW Bots - 18 Replies Hallo
Ich programmiere zur Zeit ein WoW Bot in C++, basierend auf Memory Reading. Es geht erst einmal darum, alle
wichtigen Variablen aus dem WoW Ram zu filtern. Zurzeit kann ich erfolgreich den Namen, Level, PosX und PosY
des Charakters ausgeben (dauerhaft, auch nach PC restart). Jedoch fehlt mir das Know-how bzw ich bräuchte
kleine Denkanstösse und hilfen, damit ich weiterkomme. Theoretisch wäre es möglich mit den bereits gesammelten
Daten einen Travel Bot zu proggen (es soll aber ein...
Programmierung 07/15/2007 - Kal Online - 9 Replies Hey alle zusammen bin neu hier.
Wollte jetzt zu den Sommerferien das Programmieren anfangen und lernen wie man ein khi programmiert. :)
Könnte mir da jemand helfen?
BIG THX
Ps:Wenn das gerade irgenndwie gegen die regeln verstöst bitte closen :S hoffe mal net.
EDIT:Hab in der Tutorial abteilung nix gefunden