Asigurați-vă propriul injector

Codul sursă dll'ki și injector într-o singură arhivă: descărcare

Astfel, avem un set care permite cu ușurință și în mod natural se infiltreze în procesele altor oameni. De asemenea, acesta poate fi întotdeauna modificate pentru a se potrivi obiectivele dvs. și de a folosi programe de hacking de diverse gunoi, care a fost demonstrat în posturile anterioare. Trebuie remarcat faptul că introducerea proceselor .NET au propriile lor probleme, care sunt dincolo de domeniul de aplicare al acestui articol.

Nu nifiga înțelege prima dată), va trebui să învețe) aceste mijloace care nu face mai mult pentru a injecta?

Will. Tocmai am împărtășit experiența, cunoștințele și sursă, dacă cineva vrea să încerce un pic.

ce fel de prog (în ce limbi) poate fi spart? modul de determinare prog dreapta? =)

Orice programe. WinXP, de exemplu, puteți hack - pentru acest lucru la începutul codului injectorului Completați #include

Toate acestea konechno bun, dar mai bine automatiza protsess.Dlya a ceea ce nu ar fi baie cu un prolog poate lega lungimi de dezasamblor și tampon sub bytes stocate să aloce cursul jocului său, și a pus apoi salt pentru restul funktsii.Tak același control asupra capcanelor deja instalate și în cazul ce MapIt LiBu de pe disc și de acolo ia original bayty.Libo pentru a pune pe și să decoleze pentru a intercepta, din nou, pus și din nou.

Total de acord, așa că s-ar putea prinde, în principiu, orice funcție de lungimea de cinci octeți (sau un pic mai mult de cinci, în cazul în care instrucțiunile din primele 5 nu se potrivesc). Dacă aveți timp, încerc să îmbunătățească macro, astfel încât să puteți cârlig orice funcție.

Aici este meu „punerea în aplicare universală“

proc SetHook modulename, OldFuncAdr, NewFuncAdr, veche
localnici
Dd 0 Hartă de bază
fApi dd 0
OldProtect dd?
JmpGate dd?
endl
pushad
mov SED [OldFuncAdr]
mov edi [edi]
mov [fApi], edi
împinge edi
pop esi
XOR ECx, ECx

@@:
cmp ECx, 5
JNB @ 1
numesc Catchy32; Disassembler lungimi
cmp EAX, 0
jnz @ 2
JMP @ 3
@ 2:
add esi, EAX
add ECx, EAX
JMP @b
@ 1:
împinge ECx
mov EBX, ECx
add EBX, 5
invoca VirtualAlloc, 0, EBX, MEM_COMMIT sau MEM_RESERVE, PAGE_EXECUTE_READWRITE
test de EAX, EAX
je @ 3
mov [JmpGate], eax
cmp [modulename], 0
je @ 5
cmp byte [edi], 0e9h
je @f
cmp byte [edi], 0e8h
jne @ 5
@@:
invoca GetModuleHandle, [modulename]
cmp EAX, 0
je @ 3
mov ECx, SED
Sub ECx, EAX
tapi EAX, [fApi]
tapi EDX [Hartă de bază]
stdcall MapDll, [modulename], ECx, EAX, EDX
cmp [Hartă de bază], 0
je @ 3
@ 5:
pop ECx
mov EAX, [JmpGate]
stdcall memset, EAX, EBX, 90h
stdcall memcpy, EAX, [fApi], ECx
mov byte [eax + ECx], 0e9h
esi sub, EAX
esi sub, ECx
esi sub 5,
mov [eax + ECx + 1], esi
tapi ebx, [OldProtect]
invoca VirtualProtect, SED, 5, PAGE_EXECUTE_READWRITE, EBX
mov EAX, [NewFuncAdr]
Sub EAX, SED
sub EAX, 5
mov byte [edi], 0e9h
mov [+ 1 edi], eax
invoca VirtualProtect, SED, 5, [OldProtect], ebx
mov EAX, [Vechi]
mov ECx, [JmpGate]
mov [EAX], ECx
cmp [Hartă de bază], 0
je @ 3

invoca UnmapViewOfFile, [harta de baza]
@ 3:
popad
putrezi
endp

și Th face cu totul? în cazul în care pentru a împinge și cum să salveze?

Și am funcționează doar dacă utilizați VirtualProtectEx (pe Windows7). În caz contrar, totul este în regulă. Multe mulțumiri pentru un site mare.

DACĂ have_prologue EQ 0
mov cx, cuvânt PTR [EAX]
@CatStr mov (FUNC, _prologue1), cx
mov cl, byte ptr [eax + 2]
@CatStr mov (FUNC, _prologue2), cl
mov cx, cuvânt ptr [eax + 3]
@CatStr mov (FUNC, _prologue3), cx
ENDIF

presupunem EAX: PTR JUMPNEAR
mov [EAX] .opcd, 0e9h
mov ECx, ofset hook_label
sub ECx, @ CatStr (FUNC, _hook)
ECx sub 5,
mov [EAX] .reladdr, ECx
presupunem EAX: nimic

Dacă am înțeles corect:
Prima opțiune
1. Deschideți procesul, pentru a primi franciza
2. Memoria de scriere dll
3. Memorie salt introdus pe dll
doua opțiune
O astfel de metodă este folosită în enbsiries (grafica setare pentru jocuri)
dll supleant pe cont propriu.