开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 12913|回复: 4
收起左侧

[问答] 请问有什么办法可以把android内存地址转换为电脑内存地址么

[复制链接]
结帖率:100% (1/1)
发表于 2021-2-20 22:08:04 | 显示全部楼层 |阅读模式   江西省宜春市
https://bbs.125.la/forum.php?mod=viewthread&tid=14667263&extra=
这是我之前发的帖子


我现在能用CE找到android内数据的内存地址和基址,但请问有什么办法可以把这个地址转换成电脑上的内存地址,然后直接在易语言内读取出来么?
请各位大佬解惑!谢谢了!
结帖率:100% (1/1)
 楼主| 发表于 2021-2-21 09:20:21 | 显示全部楼层   江西省宜春市
波哥野结衣 发表于 2021-2-20 23:23
直接转换肯定是不行的,平台架构都不一样。
CE的这个功能是基于tcp实现的,也就是 android 端的 ceserver  ...

非常感谢你的回帖!
但你这个代码好像是VB还是C语言的吧,易语言我不知道如何写……
而且,你意思是不是如果我要取这个地址,只能每次都要把CE服务器接到模拟器上,再取地址?
我是个自学爱好者,本来是想看看能不能用这个基址方法代替特征码,然后写一个纯内存辅助自己玩的,但感觉这方法比特征码还慢,而且麻烦的多啊……
所以不管怎么样,谢谢你了,结果可能还是要放弃了……
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 9 天

发表于 2021-2-20 23:23:45 | 显示全部楼层   重庆市重庆市
本帖最后由 波哥野结衣 于 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



评分

参与人数 1好评 +1 精币 +2 收起 理由
NeStedww + 1 + 2 新技能已get√

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:97% (29/30)

签到天数: 22 天

发表于 2021-2-20 23:11:03 | 显示全部楼层   广西壮族自治区柳州市
本帖最后由 我的小拇指啊 于 2021-2-20 23:16 编辑

楼主可以去研究研究virtualbox的源码 搞懂了喊我一声
https://www.virtualbox.org/wiki/Downloads
回复 支持 反对

使用道具 举报

结帖率:89% (67/75)

签到天数: 5 天

发表于 2021-2-20 22:38:23 高大上手机用户 | 显示全部楼层   广东省深圳市
用特征码可以定位出来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表