give us more details?
I have a c++ dll that I made to inject to Diablo 2 I use CreateRemoteThread to call methods in the dll but the dll doesnt work.
So I opened up Dependency Walker and found 2 errors. 1 I dont care about
and 1 that seems like the problem.
The 1 says that a function in the dll is not being exported. I think this is caused by microsoft visual c++ and some compiler options but I dont know how to fix. Anyone know how to fix?
My Youtube
Check it out for Dubstep, commentarys, hacks, hack tutorials and other stuffs
List of achievments
= finished
= not done
make a solitaire trainer(shutup) =
diablo 2 trainer =
Heres the 2 errors from dependency walker
Heres my dll codeCode:Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found.
Code:#include <windows.h> BOOL APIENTRY DllMain(HMODULE hModule, DWORD ulReason, LPVOID lpReserved) { UNREFERENCED_PARAMETER(lpReserved); if(ulReason == DLL_PROCESS_ATTACH) { DisableThreadLibraryCalls(hModule); } return (TRUE); } extern "C" __declspec(dllexport) void Initialize() { MessageBox(0, "Locked and Loaded.", "DLL Injection Successful!", 0); }
My Youtube
Check it out for Dubstep, commentarys, hacks, hack tutorials and other stuffs
List of achievments
= finished
= not done
make a solitaire trainer(shutup) =
diablo 2 trainer =
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
The answer to Why not CreateThread? is found at Best Practices for Creating DLLs
My Youtube
Check it out for Dubstep, commentarys, hacks, hack tutorials and other stuffs
List of achievments
= finished
= not done
make a solitaire trainer(shutup) =
diablo 2 trainer =
The answer is simple, you are injecting into a suspended process. A suspended process's environment is not ready for normal execution, only when the program reaches entry point will it be ready.
There are two solutions. Solution one is the simplest, let the application run and remove the CREATE_SUSPENDED flag. Solution two entails the suspension of the process, the patching of the entry point to be an infinite loop, dll injection via CreateRemoteThread on an export, check eip against entry point, resumption of the process (main thread), and finally the removal of the infinite loop by restoring the instructions overwritten (do this safely by suspending main thread).
Last edited by Fovea; 05-22-2011 at 06:04 AM.
Im sorry but I have no idea how to do that
My Youtube
Check it out for Dubstep, commentarys, hacks, hack tutorials and other stuffs
List of achievments
= finished
= not done
make a solitaire trainer(shutup) =
diablo 2 trainer =