hook绕过租号器
win7下自启动程序如何绕过UAC?
解决方法是把我们的驱动设置为boot类型。boot类型的驱动是启动最早的驱动程序,在系统引导时就必须加载完毕。这样我们的驱动先取得控制权,随后HOOK一些关键函数(比如驱动加载、进程结束等函数),恶意软件无法破坏。一些杀掉软件也是这么做的,比如江民、瑞星、卡巴等。
游戏怎么dump的?
一般是这样的。
先玩几把游戏,从数据结构的不同特性(比如线性表查询较快,链表增删较快)想想这个游戏是用什么数据结构代表的什么东西,会调什么api实现什么功能,可能会用什么函数名。
然后明确自己逆向的目的,是想分析关键算法怎么实现的 -->竞品分析。
还是想写外挂 -->分析功能函数,过保护。
然后查看 pe/elf/dex信息,看看区段正不正常,有没有壳。
正常就直接拖到 ida 里边先随便看看框架。
不正常或者有壳就先动态调试,过掉静态反调试,再过掉动态反调试(脱壳/去加固),然后dump出来修复iat。(这一步如果遇到最新的vmp的话,那起码得一个月!)然后执行上一步。很多游戏就是因为vmp了才搞得这么占硬盘的。
当然,拖到ida也可能遇到ida直接就崩了,这说明有反反编译。那就只能先想办法破除这个。
然后就是函数命名大作战。
命名得差不多了,可以尝试自己patch或者重打包,然后动态调试或者直接运行看自己分析得对不对。如果分析正确,那这时候,如果是竞品分析,那你就得把关键算法部分的代码还原出来。如果想写外挂,那其实主要还是过保护。当然一般单机或者棋牌类那种主要逻辑在服务端的一般不需要考虑客户端的保护。像棋牌类那种或者很多手游,更多的还是私有协议的分析。
过保护的话,可以分这么三层去研究,Ring3,Ring0,还有负一环。3环的没什么可说的,0环这个驱动层的话,主要看它干了啥,然后想办法绕过驱动签名,加载自己的驱动进行hook,不过hook对抗得太激烈现在也不这么玩了,内核重载了解一下。
当然,其实最有价值的游戏,保护也做得最gay,自然也最底层,也就是负一环。啥叫负一环呢?就是比驱动更底层,通过处理器对指令虚拟化的支持,自己构建一个虚拟机,讲游戏进程运行在这个虚拟机里边。嗯,说得就是某P。要过某P的话,一个比较广泛的思路是自己再去实现一个虚拟机,把它包在里边,也就是虚拟机外边再套个虚拟机,这样达到可控的目的。
保护过了,或者协议逆出来了,就可以着手对游戏 hook 了。再搞个界面就可以开售了。
大概就是这么个流程。。。
然后,我不是搞这个的!
以及:
Shellcode 才是真正的艺术!