unit AutoGunUnit;
interface
uses
Windows;
procedure AutoGunSet;
procedure AutoGun(AutoGunToggle: Boolean);
var
AutoSpeedGunHook, AutoSpeedGunAddr, BackUp: DWORD;
CopyValue: Array [0 .. 181] of Byte;
GunValue: Array [0 .. 9] of Byte = ($C7, $86, $E0, $00, $00, $00, $FF, $FF, $FF, $FF);
implementation
uses
Unit1, CallFunc ,ShellCopy, AddressClass;
Procedure JmpHookEx(hProcess: Cardinal; DestAddress: DWORD; FuncAdr: DWORD; NopCount: Integer);
var
i: Integer;
bBuffer: byte;
dBuffer: DWORD;
NOW: NativeUint;
old: Cardinal;
begin
bBuffer := $E9;
VirtualProtectEx(hProcess, Pointer(DestAddress), 16,
PAGE_EXECUTE_READWRITE, old);
WriteProcessMemory(hProcess, Pointer(DestAddress), @bBuffer, 1, NOW);
dBuffer := FuncAdr - DestAddress - 5;
WriteProcessMemory(hProcess, Pointer(DestAddress + 1), @dBuffer, 4, NOW);
bBuffer := $90;
if NopCount <> 0 then
begin
for i := 0 to NopCount - 1 do
begin
WriteProcessMemory(hProcess, Pointer(DestAddress + 5 + i), @bBuffer, 1, NOW);
end;
end;
VirtualProtectEx(hProcess, Pointer(DestAddress), 4, old, old);
end;
procedure AutoGunSet;
begin
AutoSpeedGunAddr := DWORD(VirtualAllocEx(hProcess, nil, 16, MEM_COMMIT, PAGE_EXECUTE_READWRITE));
AutoSpeedGunHook := RPM4Byte(RPM4Byte(RPM4Byte(RPM4Byte(cshell + English + $76C) + $14)) + $178);
ReadProcessMemory(hProcess, Pointer(AutoSpeedGunHook), @CopyValue, Sizeof(CopyValue), Pnativeuint(nil)^);
WriteProcessMemory(hProcess, Pointer(AutoSpeedGunAddr), @CopyValue, Sizeof(CopyValue), Pnativeuint(nil)^);
WriteProcessMemory(hProcess, Pointer(AutoSpeedGunAddr + $90), @GunValue, Sizeof(GunValue), Pnativeuint(nil)^);
JmpHookEx(hProcess, AutoSpeedGunAddr + $9A, AutoSpeedGunHook + $94, 0);
WPM4Byte(AutoSpeedGunAddr + $41, (AutoSpeedGunHook + $40 + RPM4Byte(AutoSpeedGunHook + $41) + $5) - (AutoSpeedGunAddr + $40) - 5);
RPM4Byte(RPM4Byte(RPM4Byte(RPM4Byte(cshell + English + $76C) + $14)) + $178);
end;
procedure AutoGun(AutoGunToggle: Boolean);
var
I: integer;
AutoGunSlotNum: DWORD;
begin
if Form1.AutoGunC.Checked then Begin
WPM4Byte(WeaponDump + $178, AutoSpeedGunAddr);
end else begin
WPM4Byte(WeaponDump + $178, RPM4Byte(cshell + PointerResult + $178));
end;
end;
end.
제목 | 작성자 | 작성일 | 조회 | |
---|---|---|---|---|
공지 | 게시판 이용 안내+63 | 10-20 | 7666 | |
9322 | 00:59 | 8 | ||
9321 | 05-13 | 38 | ||
9320 | 05-13 | 90 | ||
9319 | 05-13 | 75 | ||
9318 | 05-13 | 14 | ||
9317 | 05-13 | 23 | ||
9316 | 05-13 | 43 | ||
9315 | 05-13 | 48 | ||
9314 | 05-13 | 33 | ||
9313 | 05-13 | 91 | ||
9312 | 05-12 | 81 | ||
9311 | 05-12 | 138 | ||
9310 | 05-12 | 57 | ||
9309 | 05-12 | 111 | ||
9308 | 05-12 | 209 | ||
9307 | 05-12 | 53 | ||
9306 | 05-12 | 39 | ||
9305 | 05-12 | 72 | ||
9304 | 05-12 | 75 |
댓글10
삭제된 댓글입니다.
168>178
삭제된 댓글입니다.
또그러노
ㄷㄷㄷ
?
고수 ㄷㄷ
고수