一开始以为只要hook一个 gettimeofday就可以了 但是发现 在到他传奇里居然不行的 按钮点不进去了 但是效果是有的
而后发现需要同时hook gettimeofday和clock_time两个函数才行的
原理就是 】
一个起始的时间值 ,假设1000开始
1000
1100 1100 - 1000然后乘以倍数2 就变成了 200 加上起始值 此时的时间为1200 就是加速了 本来过了100ms 现在变成了200毫秒
之后因为SO已经被注入到进程了 相当于独立了已经 那么此时需要在这个SO文件中设置一个变量来修改速度
用了mmap发现需要不停的分配虚拟内存很快就挂掉了 之所以不用其他的read fread是考虑到了效率
一开始放在微妙的hook函数里来读取时间文件 这样就变成了毫秒级的修改文件,肯定会死掉
之后用了延迟从文件定时读取 这样子就可以了
但是不稳定 没多久就挂了 之后发现是mmap读取一阵子文件就不能读取了
最后换成了简单的read 和write来修改
脱脱的
最开始是在一个 activity中的animation来做测试的
发现只能加速不能减速,并且用了注入dex的方式来加载,因为考虑到想chaczhushou那样子 启动游戏则显示 其他时候不显示
但是发现只可以加速不可以减速 蛋疼 后来猜想应该是animation采用的不是gettimeofday clocktime 而游戏是opengl来绘制的
strncpy效率低于sprintf低于memcpy