《第2期-13 CC 3.4格盘》
2018-09-20 本文已影响0人
听说我在混吃等死
这集视频讲的是CC 3.4格盘代码的寻找和应对方法。
一、寻找
1、还是看CC 3.4的源代码,在里面会发现格盘的代码如下:
格盘代码
2、编译源码,载入OD中,这时只是载入,不再运行了,怕触发格盘代码。
3、查找字符串 “C”。其实就是源代码中格盘的盘符。
查找字符串“C"
这会出来太多的结果,只好一个一个找,肯定会找到的。
查找的结果
找到后双击过去,定位了格盘的代码。
找到的格盘代码
除了这个查找字符串的方法,还可以根据“特征码”。意思是在格盘代码附近找一块代码作为特征码,然后二进制复制出来,再二进制查找。类似于易语言按钮事件的特征码
FF 55 FC 5F 5E 89 5D F4
作者给出的方法是在格盘代码的段尾向上找一段,进行二进制复制出来
找到的特征码
把二进制代码里有call的字节都用 ?? 代替了,因为这些是可以变动的地方。
53 E8 ?? ?? ?? ?? 83 C4 04 8B 5D F8 85 DB 74 09 53 E8 ?? ?? ?? ?? 83 C4 04 8B E5 5D C3
把修改过的特征码复制过来进行查找二进制字符串
查找特征码
粘贴的时候需要右键,选择菜单中的”粘贴“
查找特征码2
查找的结果:
结果1
结果2
结果3
结果4
当然,这样找的特征码可能会定位很多个地方,那么可以换一个特征码来试试。
二、应对格盘
CC 3.4的格盘代码最终会是变为
cmd /c format c /q /y
所以在数据窗口中搜索format就可以找到了,并且全部改为0,这样就无法格盘了。
1
2
3
我在做的时候,第一遍查找什么都没有找到,直到重新载入程序后,才找到了。
三、杂项
在看CC源码,在格盘代码上面有一行
代码
也就是说,以前在易语言中遇到退出安装都是直接把结束给改了。这CC作者肯定知道这个情况,所以做了这么一个套路:如果不改 结束(),那么后面的格盘代码不会运行;改了这个 结束(),那么格盘代码就运行了。