android手机上的外挂的实现方式有很多种,目前出现在市场上的外挂软件基本采用内存快照比对的形式来实现数据的搜索及修改。
本文主要分析下烧饼的使用情况。
常见的搜索文件是:
/proc/pid/pagemap
/proc/pid/maps
烧饼的搜索目录比较多一些:
使用烧饼操作梆梆加固后的软件时,在搜索数值的时候,游戏会闪退或者重启。
很显然梆梆对以上目录之一有监控操作。
dump梆梆加固后释放的so,或者简单的看导入函数,可以看到他使用了inotify机制来实现监控。
inotify的基本使用方法是:
int fd = inotify_init ();
int wd = inotify_add_watch (fd, path, mask);
当监视的目录发生读写操作时,会触发一个信号。在此时机可以做一些处理。
在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制
max_user_watches:设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)。
max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数。
max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量。
max_user_watches默认的值是:
我们直接修改max_user_watches这个文件的内容为0。(需要root权限)(也可以在手机上使用Root explorer这样的工具修改。)
再次运行烧饼,就可以搜索并修改游戏数据了。
这个小技巧有权限的限制,同时修改这个数值后可能造成系统的一些监视失效。
手机重启后,max_user_watches会恢复。
总的来说,这个方法并不是一劳永逸的办法,仅仅是一个小技巧而已。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!