本帖最后由 波哥野结衣 于 2021-2-20 23:50 编辑
直接转换肯定是不行的,平台架构都不一样。
CE的这个功能是基于tcp实现的,也就是 android 端的 ceserver 与你pc端的ce
pc端的ce通过socket发送指令 给android 端的 ceserver 收到指令后 ceserver 处理 然会结果给pc端的ce显示
就是这样一个过程 你可以看它的实现代码 比如这个 发送宏CMD_OPENPROCESS就是叫 ceserver 打开android的指定进程功能
简单形容也就是
pack = bin ( CMD_OPENPROCESS ) + bin ( pid ) // CMD_OPENPROCESS = 3 , pid = 安卓进程ID
socket.send(pack)
实现代码位于 networkInterface.pas
ce是开源的,照着它撸就好了
function TCEConnection.OpenProcess(dwDesiredAccess:DWORD; bInheritHandle:WINBOOL; dwProcessId:DWORD):HANDLE;
var OpenProcessCommand: packed record
command: byte;
pid: integer;
end;
var h: integer;
begin
result:=0;
h:=0;
OpenProcessCommand.command:=CMD_OPENPROCESS;
OpenProcessCommand.pid:=dwProcessID;
if send(@OpenProcessCommand, sizeof(OpenProcessCommand))>0 then
if receive(@h, sizeof(h))>0 then
begin
if (h>0) then
h:=h or $ce000000;
result:=h;
end;
end;
这是它支持的功能,顺手给你备注一下吧
CMD_GETVERSION =0; // 获取版本
CMD_CLOSECONNECTION= 1; // 关闭一个客户端tcp连接
CMD_TERMINATESERVER= 2; // 关闭ceserver 服务 相当于关闭ceserver
CMD_OPENPROCESS= 3; //打开进程
CMD_CREATETOOLHELP32SNAPSHOT =4; // 开始获取进程列表
CMD_PROCESS32FIRST= 5; // 获取进程列表后开始遍历 第一个
CMD_PROCESS32NEXT= 6; // 获取进程列表后开始遍历 下一个
CMD_CLOSEHANDLE=7;// 关闭句柄
CMD_VIRTUALQUERYEX=8;// 查询内存块属性
CMD_READPROCESSMEMORY=9;// 读内存
CMD_WRITEPROCESSMEMORY=10;// 写内存
CMD_STARTDEBUG=11; // 开始调试
CMD_STOPDEBUG=12; // 停止调试
CMD_WAITFORDEBUGEVENT=13; //循环等待调试事件也就是获取调试事件信息
CMD_CONTINUEFROMDEBUGEVENT=14; // 继续调试事件
CMD_SETBREAKPOINT=15; // 设置断点
CMD_REMOVEBREAKPOINT=16; // 移除断点
CMD_SUSPENDTHREAD=17; // 挂起线程
CMD_RESUMETHREAD=18; // 恢复挂起的线程
CMD_GETTHREADCONTEXT=19; // 获取线程上下文,也就是获取寄存器 eax ecx 之类得值
CMD_SETTHREADCONTEXT=20; // 设置线程上下文,也就是设置寄存器 eax ecx 得值
CMD_GETARCHITECTURE=21; // 获取架构
CMD_MODULE32FIRST=22; // 第一个模块信息 也就是枚举模块时得第一个
CMD_MODULE32NEXT=23; // 下一个模块信息 也就是枚举模块时得下一个
CMD_GETSYMBOLLISTFROMFILE=24; // 获取符号表文件
CMD_LOADEXTENSION=25; // 这个没看明白
CMD_ALLOC=26; // 申请内存
CMD_FREE=27; // 释放内存
CMD_CREATETHREAD=28; // 创建线程
CMD_LOADMODULE=29; // 载入模块 也就是注入
CMD_SPEEDHACK_SETSPEED=30; // 速度调节 也就是CE的变速精灵功能
CMD_VIRTUALQUERYEXFULL=31; // 查询内存属性EX
CMD_GETREGIONINFO=32; // 获取内存或虚拟页的属性
这些功能也是开放的,开放接口位于 ceserver/api.h
|