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.
제목 | 작성자 | 작성일 | 조회 | |
---|---|---|---|---|
641 | 에잇 서든잼이없어+17 | 01-08 | 620 | |
640 | 01-08 | 545 | ||
639 | 01-08 | 334 | ||
638 | 01-08 | 238 | ||
637 | 01-08 | 468 | ||
636 | 01-08 | 352 | ||
635 | 정지관련 질문+2 | 01-08 | 291 | |
634 | 01-08 | 233 | ||
633 | 01-08 | 482 | ||
632 | 옛날 감성+3 | 01-07 | 435 | |
631 | Gun+10 | 01-07 | 690 | |
630 | 01-07 | 279 | ||
629 | 01-07 | 182 | ||
628 | 01-07 | 665 | ||
627 | 01-06 | 298 | ||
626 | 고수들+10 | 01-06 | 638 | |
625 | (Q)5엠...+2 | 01-06 | 301 | |
624 | 2C0 2C4+3 | 01-06 | 802 | |
623 | 제제승계+3 | 01-04 | 631 | |
622 | 뻘짓용+2 | 01-04 | 624 |
댓글10
삭제된 댓글입니다.
168>178
삭제된 댓글입니다.
또그러노
ㄷㄷㄷ
?
고수 ㄷㄷ
고수