Dll İnjector Modul


C # Programlama    C # Programlama İle İlgili Paylaşım Kategorisi

Yazar: lDarkAngeL    1 Yorum    212 Görüntüleme
  • Derecelendirme: 0/5 - 0 oy

Paylaşım Tarihi: 02.08.2016, 13:08:42 #1
lDarkAngeL ClavoR
Efsane Üye
Status: Çevrimdışı Yorumları:1,345 Konuları:506 Kayıt Tarihi:19.03.2016 Rep Puanı: 836

Merhaba Gençler,

yazılım geliştirmeye adım atanlar için güncel dll inject modulunu veriyorum  nasıl kullanacağını ilk c++ öğrenmeye başlayın ondan sonra  kodları inceleyin bakın


[b]Kod:
[/b]

Kod:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#pragma once


#include <stdint.h>
#include <winternl.h>
#include <Windows.h>
#include <iostream>
#include <ntstatus.h>
#include <tchar.h>
#include <TlHelp32.h>

#define ntZeroMemory(VariableToBeSetToZero) memset(VariableToBeSetToZero, 0, sizeof(VariableToBeSetToZero)) 
#define THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER 0x00000004
#define TOKENBUFFER sizeof(TOKEN_PRIVILEGES)
#define NTRETURN_SUCCESS 1
#define NTRETURN_FAILURE 0

struct NtCreateThreadExBuffer {
  ULONG Size;
  ULONG Unknown1;
  ULONG Unknown2;
  PULONG Unknown3;
  ULONG Unknown4;
  ULONG Unknown5;
  ULONG Unknown6;
  PULONG Unknown7;
  ULONG Unknown8;
};
//WINAPI Hooks -TODO: NT WriteVirtualMemory
typedef HMODULE (WINAPI *waLoadLib)(LPCTSTR);
typedef HMODULE (WINAPI *waGetModH)(LPCTSTR);
typedef BOOL    (WINAPI *waWriteProcMem)(
                                    HANDLE, PVOID,
                                    LPCVOID, SIZE_T, SIZE_T *
                                    );
//NT Hooks
typedef NTSTATUS (__stdcall *ntCreateThEx)(
                                    PHANDLE, DWORD, PVOID, HANDLE,    // PHANDLE, out param rets Thr Handle
                                    LPTHREAD_START_ROUTINE, 
                                    PVOID, BOOL,
                                    ULONG, ULONG, ULONG, PVOID
                                    ); //last param &ntcreatethread struct

/* Read Comment under function!!!! */
DWORD UnProtectMemory(
                HANDLE memHandle,
                DWORD  outOldProtection
                ) {

    VirtualProtect(memHandle, NULL, PAGE_EXECUTE_READWRITE, &outOldProtection);
    return outOldProtection;
}
/*IMPORTANT Re-Protect MEMORY! VirtualProtect(memHandle, NULL, outOldProtection, NULL)*/


//Elevate Privilege Function
BOOL ElevatePrivileges(
                HANDLE   hToken,
                LPCTSTR  lpstrPrivilege, // SE_DEBUG_NAME - Adjust memory and debug process - from any user
                uint16_t enablePrivilege
                ) {
    TOKEN_PRIVILEGES tPrivilege;
    LUID luID; // unique to each OS -- lowpart(low bits) highpart(high bits)
    OSVERSIONINFO osVersion = { sizeof(osVersion) };

    LookupPrivilegeValue(NULL/*uses localsys*/, lpstrPrivilege, &luID);
                // Function Succeeds ret nonzero
    tPrivilege.PrivilegeCount = 1;
    tPrivilege.Privileges[0].Luid = luID;

    if(enablePrivilege == 1 || TRUE) {
            tPrivilege.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    }
    else if(enablePrivilege == 0 || FALSE) {
        tPrivilege.Privileges[0].Attributes = 0;
    }

    BOOL adjustPrivileges = AdjustTokenPrivileges(   /* ret nonzero if success */
                                            hToken,
                                            FALSE,
                                            &tPrivilege,
                                            TOKENBUFFER,
                                            NULL,
                                            (PDWORD)NULL
                                            );
    if(adjustPrivileges != 0) {
        std::cout << "Privileges changed" << std::endl;
    }
    else if(adjustPrivileges == 0 || FALSE) {
                    
        std::cout << "Privileges rejected!" << std::endl;
        return NTRETURN_FAILURE;
    }

    return NTRETURN_SUCCESS;
}

//returns handle from ntCreateThread call
HANDLE HkCreateThreadHook(
                HANDLE hProcess,  
                PCHAR  dllFileName
                ) {
    
    
    DWORD ntTemp0 = 0;
    DWORD ntTemp1 = 0;
    HANDLE retHandleFromHook;
    HMODULE nt_LoadLibraryHook  = GetModuleHandle(_T("Kernel32.dll"));
    HMODULE nt_HandleThreadHook = GetModuleHandle(_T("ntdll.dll"));
    
    void *vp_AllocMem = VirtualAlloc(
                                hProcess,
                                NULL,
                                strlen(dllFileName) + 1,
                                PAGE_READWRITE
                                );

    void *vp_LoadLib   = GetProcAddress(nt_LoadLibraryHook, "LoadLibraryA");
    ntCreateThEx nt_CrThreadHook = (ntCreateThEx)GetProcAddress(nt_HandleThreadHook, "NtCreateThreadEx");

    if(!nt_CrThreadHook) {
        std::cout << " Thread Hook - Error - 0x" << GetLastError() << std::endl;
    }
    if(!vp_LoadLib) {
        std::cout << "Load Lib - Error - 0x" << GetLastError() << std::endl;
    }
    
    NtCreateThreadExBuffer ntHookBuff;
    ntZeroMemory(&ntHookBuff);

    ntHookBuff.Size        = sizeof(NtCreateThreadExBuffer);
    ntHookBuff.Unknown1 = 0x10003;
    ntHookBuff.Unknown2 = 0x8;
    ntHookBuff.Unknown3 = &ntTemp1;
    ntHookBuff.Unknown4 = 0;
    ntHookBuff.Unknown5 = 0x10004;
    ntHookBuff.Unknown6 = 4;
    ntHookBuff.Unknown7 = &ntTemp0;
    ntHookBuff.Unknown8 = 0;

    long nt_ActivateHook = nt_CrThreadHook(
                                    &retHandleFromHook,
                                    0x1FFFFF,
                                    NULL,
                                    hProcess,
                                    (LPTHREAD_START_ROUTINE)vp_LoadLib,
                                    vp_AllocMem,
                                    THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER,
                                    NULL,
                                    NULL,
                                    NULL,
                                    &ntHookBuff
                                    );
    if(retHandleFromHook == NULL) {
        std::cout << " ThreadHookBootup - Error - 0x" << GetLastError() << std::endl;
    }

    DWORD exitCode;
    GetExitCodeThread(retHandleFromHook, &exitCode);
    std::cout <<  "exitCode is : " << exitCode << std::endl;
    
    WaitForSingleObject(retHandleFromHook, INFINITE);
    return retHandleFromHook;
}

BOOL HkWriteProcMemory(
                HANDLE  hProcess,
                LPCVOID cvpBuffer,
                SIZE_T  fSize
                ) {
    
    HMODULE dllModule = GetModuleHandle(_T("Kernel32.dll"));
    waWriteProcMem callWritePMem = (waWriteProcMem)GetProcAddress(dllModule, "WriteProcessMemory");
    void *memoryAlloc = VirtualAllocEx(
                            hProcess,
                            NULL,
                            sizeof(cvpBuffer) + 1,
                            MEM_RESERVE | MEM_COMMIT,
                            PAGE_READWRITE
                            );


    BOOL hkCheck = callWritePMem(            /* If functions succeeds the ret value is != 0 */
                            hProcess,
                            memoryAlloc,
                            cvpBuffer,
                            fSize,
                            NULL
                            );
    if(hkCheck  == 0) {
        std::cout << "Writeprocmem hook has failed - Error code - 0x" << GetLastError() << std::endl;
        return NTRETURN_FAILURE;
    }

    return NTRETURN_SUCCESS;
}


Kullanıcı İmzası
Resim http://i.hizliresim.com/A3jRQr.gif

Paylaşım Tarihi: 23.08.2016, 19:45:26 #2
Dumancı Arsız Adam
Onaylı Uye
Status: Çevrimdışı Yorumları:88 Konuları:25 Kayıt Tarihi:11.05.2016 Rep Puanı: 7

aga bu exe mi yoksa dll mi










Aradığınızı Bulamadınız Mı ?

Konuyu Okuyanlar:
1 Ziyaretçi