博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
做游戏加速的那些事
阅读量:5017 次
发布时间:2019-06-12

本文共 698 字,大约阅读时间需要 2 分钟。

一开始以为只要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

转载于:https://www.cnblogs.com/xxaing/p/5234462.html

你可能感兴趣的文章
反转链表
查看>>
vPC配置
查看>>
原生JS动态添加和删除类
查看>>
PS PNG导出的时候是否交错有什么影响
查看>>
工作室门面页面设计有感
查看>>
DXCore for Visual Studio 简介
查看>>
Java抽象类与接口的区别
查看>>
[笔记] 分层图
查看>>
单词number 和 numeral 的区别
查看>>
任务02
查看>>
【CSS3】定位
查看>>
关于南京四校联合程序设计大赛
查看>>
第十章、嵌入式Linux的调试技术
查看>>
HTML入门教程,多年心血总结,一看就会
查看>>
c# 多线程里面创建byte数组发生内存溢出异常求解
查看>>
java使用apache-poi生成excel表格
查看>>
一个完整的Windows 服务从创建到安装卸载
查看>>
数组排序将111001000011排序到数组中list[0]=1,list[1]=1..........
查看>>
Java多线程-新特性-线程池
查看>>
数据访问----实例4
查看>>