0x00 前言
最近对windows单机游戏的修改器有一点儿兴趣,就简单看了下,写了个简单的购买道具时不消耗金币的功能练手玩。
总的来说整个流程其实挺简单的,就是定位下内存中修改金币的指令,再置为nop就行了。这里的目标是前一段时间在steam登录的游戏《机甲战魔》,还是挺酷炫的,有一种开高达的感觉。
最近对windows单机游戏的修改器有一点儿兴趣,就简单看了下,写了个简单的购买道具时不消耗金币的功能练手玩。
总的来说整个流程其实挺简单的,就是定位下内存中修改金币的指令,再置为nop就行了。这里的目标是前一段时间在steam登录的游戏《机甲战魔》,还是挺酷炫的,有一种开高达的感觉。
我觉着我干的事情一直比较杂,最近弄了一些 Elasticsearch 相关的事情,我本身并不是做服务端或者大数据那一类的,但是这里仍然因为工作上的原因使用了一些es,因此这里还是整理一下,目前常用的es相关知识,至少是我这个初学者比较容易遇到的一些操作,以及踩到的一些坑。有些信息出自官方文档,或者其他的blog,人类的本质果然是复读机。。很多blog不知道到底上哪儿复制的,有些东西感觉都不太对。,也可能是我版本的问题吧,这里我使用的版本是6.2.2,kibana同版本的嗷。
前一阵因为工作的原因需要反复在一个网站上看点儿东西,但是有个东西老得手动算一下,这里觉得比较费劲,就顺手学了一把chrome插件,感觉挺好使的,同事用了,都说好(手动滑稽),后来觉得这个东西还挺好玩的,就顺手想写个东西放git上玩一玩,于是就有了这个文章。总的来说,写了一个用于github一键三连的按钮(watch/fork/star)按钮 https://github.com/EggUncle/GithubComboButton ,代码量非常少,但是我觉着也涉及到了chrome插件开发相关的方方面面吧,所以这里记一下整个开发过程和涉及到的知识,主要还是太菜了嗨呀,前段和js不太会,踩了很多坑。
组里有java热修复项目,其中有一部分功能是根据diff自动生成补丁,在最近维护的时候,遇到了一个问题,在补丁运行时会出现IllegalAccessException,说到这里可能很多人就已经知道答案了,由于IsInSamePackage导致,因此反射替换类加载器为原先的类即可。 这样确实没什么问题,但是我们的场景在系统中,于是这里遇上了一些新的问题。情况是,在替换类加载器后,仍然在IsInSamePackage中没有通过类加载器是否相同的校验,导致返回false,抛出非法访问的异常。
前一阵弄了一个和binder有关的小工具 https://github.com/EggUncle/Hermes ,大概就是通过对ioctl进行hook,读取到binder的数据信息。
binder的具体原理等细节这里就不讨论了,我们此处仅仅从数据的角度来分析一下获取手机imei时,binder的请求和响应过程。
操作环境: Nexus5x aosp 7.1.2