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.
| 제목 | 작성자 | 작성일 | 조회 | |
|---|---|---|---|---|
| 공지 | 게시판 이용 안내+64 | 10-20 | 8829 | |
| 9778 | 12-24 | 310 | ||
| 9777 | 12-17 | 147 | ||
| 9776 | 12-15 | 378 | ||
| 9775 | 12-15 | 162 | ||
| 9774 | 12-15 | 315 | ||
| 9773 | 12-14 | 192 | ||
| 9772 | 12-14 | 140 | ||
| 9771 | 12-13 | 108 | ||
| 9770 | 12-13 | 390 | ||
| 9769 | 12-13 | 118 | ||
| 9768 | 12-12 | 162 | ||
| 9767 | 12-11 | 118 | ||
| 9766 | 12-07 | 950 | ||
| 9765 | 12-06 | 173 | ||
| 9764 | 패치님 소식 아시는분+14 | 12-06 | 688 | |
| 9763 | 12-06 | 328 | ||
| 9762 | 12-04 | 168 | ||
| 9761 | 12-02 | 316 | ||
| 9760 | 11-30 | 427 |
댓글10
삭제된 댓글입니다.
168>178
삭제된 댓글입니다.
또그러노
ㄷㄷㄷ
?
고수 ㄷㄷ
고수