|
|
|
|
|
开源内存扫描工具 mypower,支持 Android/Linux
走过_509423 大佬 ,能解释一下这命令中的参数意义么? ptr --mask 0xFFFFFFFFFFFFFC00 --depth-max 4 --offset-max 512 --result-max 512 ... ptr --mask 0xFFFFFFFFFFFFFC00 --depth-max 4 --offset-max 512 --result-max 512 0x563db339b000 0x563db339c000 0x563db53396d0 --mask 是内存块掩码,比如我们要搜索0x563db53396d0, 那么这个指针所处的内存块就是0x563db5339400 (0x563db53396d0 & 0xFFFFFFFFFFFFFC00), 然后内存里每8个字节当作一个指针然后(指针 & 0xFFFFFFFFFFFFFC00) == 0x563db5339400的时候,程序就认为找到了对地址0x563db53396d0的引用。接着这个引用指针就会到做下一个目标地址进行下一轮搜索,直到这个指针落在指定的范围内。 --depth-max 意思是最多搜索多少级指针 --offset-max 意思是每级指针的最大偏移量 --result-max 是结构达到这个数量后停止扫描 0x563db339b000 0x563db339c000 是内存区域范围,比如给的是exe的bss段或data段,就是搜索全局变量到目标指针的引用路径。当搜索到落在这个区域的结果时,视为成功。 0x563db53396d0 是目标地址
最后于 2023-5-18 13:42
被vrolife编辑
,原因:
|
|
开源内存扫描工具 mypower,支持 Android/Linux
不吃早饭 emmmmmmm,不是认为楼主这套东西没用,开源点赞没话说,但是还是想问一下,它和CE以及GG修改器之间的区别是什么没啥区别,个人觉得值得一提的也就是静态分析和多线程搜索指针,还有就是源码比较清晰好定制化。另外主要是我的下一篇文章要用到这工具 |
|
|
|
[原创] 软解页表实现远程内存访问,可避免 mincore 检测。
不知世事 扫描内存的时候,使用mincore过滤掉缺页内存不就可以绕过检测了么,用魔法打败魔法不这么做,主要是考虑竞态条件的问题。这样做,只有过滤线程和陷阱线程是同一个线程的时候,才能经济地实现。 |
|
[原创] 软解页表实现远程内存访问,可避免 mincore 检测。
ycmint 那你的厉害方案是啥呢不厉害,也就是尽可能少引用内核符号罢了。然后部署的时候实时从内核binary里取几个偏移量就行了。开始我第一个念头也是仿那两个syscall, 结果兼容性一言难尽。而且那两个syscall核心原理就是锁内存页,不暂停目标进程的话,不安全,暂停了的话,性能太受影响。期待你分享别的方案 |
|
[原创] 软解页表实现远程内存访问,可避免 mincore 检测。
ycmint 或者,我压根不需要解决加载ko 这些事。。我找个合适的地方,binary 插入vmlinux进去就好。。。不是没考虑这样的方案,问题是这样子要解决很多符号和数据结构问题,不然就得为每份内核配置和每个内核版本编译一个ko。内核很多接口都是内联或者干脆是宏,无源码做兼容太难了。 |
|
[原创] 软解页表实现远程内存访问,可避免 mincore 检测。
ycmint 文章目的是什么?process_vm_readv 和 process_vm_writev 自实现,绕过 调用检测? 那为啥不直接参考 这辆syscall 的内核实现。。。。bug 还少。。。因为参考这两 syscall 的实现,最终效果就是本文提及的差不多的技术。而且按你的想法实现的话,是没办法和内核解耦的,更不可能在没有源码的情况下实现这效果。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值