Folgende Warnungen sind aufgetreten:
Warning [2] preg_match_all(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 1007 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/highlighter.php 1007 preg_match_all
/inc/highlighter.php 112 generic_highlight
/inc/highlighter.php 48 generic_c_highlight
/inc/highlighter.php 53 cpp_highlight
/inc/plugins/coolcode.php 133 c_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message
Warning [2] Invalid argument supplied for foreach() - Line: 1008 - File: inc/highlighter.php PHP 7.4.33 (Linux)
File Line Function
/inc/highlighter.php 1008 errorHandler->error
/inc/highlighter.php 112 generic_highlight
/inc/highlighter.php 48 generic_c_highlight
/inc/highlighter.php 53 cpp_highlight
/inc/plugins/coolcode.php 133 c_highlight
/inc/plugins/coolcode.php 61 coolcode_run
/inc/class_plugins.php 139 coolcode_end
/inc/class_parser.php 232 pluginSystem->run_hooks
/printthread.php 184 postParser->parse_message



Home of Gamehacking - Archiv
[C++] GetModuleBaseAddress - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Coding (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=15)
+--- Forum: C, C#, C++, Visual C++ (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=18)
+--- Thema: [C++] GetModuleBaseAddress (/showthread.php?tid=840)



[C++] GetModuleBaseAddress - Acubra - 10.01.2012

Hey,
hier mal nen Codesnippet, wie man die BaseAdresse eines Moduls bekommt, wenn man den Prozessnamen und den Modulnamen hat (könne auch gleich sein).

C Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
DWORD GetModuleBaseAddress(LPCWSTR szProcessName, LPCWSTR szModuleName)
{
    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 pe32;

    if(hSnap == INVALID_HANDLE_VALUE)
    {
        return 0;
    }
    pe32.dwSize = sizeof(PROCESSENTRY32);
    if(Process32First(hSnap, &pe32) == 0)
    {
        CloseHandle(hSnap);
        return 0;
    }

    do 
    {
        if(lstrcmp(pe32.szExeFile, szProcessName)== 0)
        {
            int PID;
            PID = pe32.th32ProcessID;

            HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
            MODULEENTRY32 xModule;

            if (hSnap == INVALID_HANDLE_VALUE)
            {
                return 0;
            }
            xModule.dwSize = sizeof(MODULEENTRY32);
            if (Module32First(hSnap, &xModule) == 0)
            {
                CloseHandle(hSnap);
                return 0;
            } 

            do 
            {
                if (lstrcmp(xModule.szModule, szModuleName) == 0)
                {
                    CloseHandle(hSnap);
                    return (DWORD)xModule.modBaseAddr;
                }
            } 
            while (Module32Next(hSnap, &xModule));
            CloseHandle(hSnap);
            return 0;
        }
    } 
    while (Process32Next(hSnap, &pe32));
    CloseHandle(hSnap);
    return 0;
}