易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi call调用例子

在群里看到有人发了个别人发给他的
我看了写的比较生动 在这转给大家看看
好的 拾取物体函数写好了 下步是如何将代码注入到游戏进程中执行??
1) 小偷开门
PHND:= OpenProcess (PROCESS_ALL_ACCESS, False, PID);得到游戏窗口句柄获得权限
2)小偷在房间搞个放作案方案的地方
TAdd := VirtualAllocEx(PHND, nil, 4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
在游戏进程中申请4096字节的空间用来存放函数代码
3)小偷把作案方案放入作案空间
WriteProcessMemory(TPHND, TAdd,PickCall,4096 , WriteCount);
把代码写到游戏进程中 开始的地址是第二步得到的位置
4)小偷在房间中搞个放作案工具的地方
PAdd := VirtualAllocEx(PHND, nil, 128, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
在游戏进程中申请128字节的空间用来存放参数
5)小偷把作案工具放入房间
WriteProcessMemory(TPHND, TAdd,param,128 , WriteCount);
写入参数
6)一起就就绪 开始作案
TmpHandle := CreateRemoteThread(TPHND, nil, 0, TAdd, padd, 0, WriteCount);
WaitForSingleObject(TmpHandle, INFINITE);//等待作案完成
CloseHandle(TmpHandle); //关闭远程的句柄 作案完成后关门闪人
到这里 基本都搞清楚注入代码的用法了,学习重点是
1)理解CreateRemoteThread函数各个参数的意义
2)数据结构的用法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure runCall;stdcall; // 走路call
var
Address:Pointer;
begin
Address:=Pointer($004537E4); //函数入口地址
asm
    pushad             //保存寄存器环境
    mov eax,47         //参考上面的反汇编
    call Address         //正式调用函数
    popad             //恢复寄存器环境
end;
end;
//-------------------------注入代码的函数----------------------------
//参数说明:
//InHWND:被注入的窗口句柄
//Func:注入的函数的指针
//Param:参数的指针
//ParamSize:参数的大小
//
procedure InjectFunc(InHWND: HWND; Func: Pointer; Param: Pointer; ParamSize: DWORD);
var
hProcess_N: T


相关文档:

Delphi拾遗(8) 类事件

类的事件
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyEvent = procedure of object; //不带参数的过程
TMyEventExt = procedure(AName: string) of object; //带参数的过程

TForm1 = class(TForm)
......

Delphi 嵌入汇编 进Ring0 360tray.exe

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TlHelp32;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Pub ......

delphi 读取剪粘板内的html格式数据

根据剪贴板的原理,在获取剪贴板内容之前,必须指定要获取内容的格式。由于剪贴板中的数据可能存在多种格式,所以有必要对剪贴板的格式类型先做一些了解。W写下了以下的测试代码:
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
  Buffer: PChar;
  s: string;
begin
  M ......

Override Delphi Form's Restore Operation

{ Private declarations }
procedure WMSysCommand (var Msg: TWMSysCommand) ; message WM_SYSCOMMAND;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if Msg.CmdType = SC_RESTORE then
begin
ShowMessage('SC_RESTORE');
if self.WindowState = wsMaximized then
begin
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号