石器登陆器HOOK之字符串修改
每个EXE应用程序里都是可以修改里面的字符串,例如标题栏等。石器的登陆器也不例外,但要记住一点任何字符串的修改的前提就是应用程序都必须是未加壳未加密的。传统的修改方式就是用UE之类的文本编辑器打开应用程序,搜索相关字符串然后再进行修改。既然我们利用了HOOK技术,那么无论怎么在用UE对EXE进行修改字符串,最后都将显示的是我们HOOK出来的字符串。
看下列一段HOOK代码:
//修改石器时代窗口的标题 *(int *)0x0042112E = *(int *)0x00421358 = *(int *)0x0042155E = *(int *)0x004218A9 = *(int *)0x0043F32A = *(int *)0x0043F8C3 = *(int *)0x0043F8C8 = (int)(char *)"神奇石器宣传网";一共七个地址都用到了字符串,我们用OD载入任意一个地址看下是什么样子的。

如图我们可以看到C2和C7两个地址,但为什么要写C3和C8呢,请看到68,68对应的汇编指令是push,我们要改的是他后面调用的字符串,因为要+1位,所以地址是C3和C8。再对比我们上面的的HOOK代码,可以很明白了。要把这几处的地址都改成自己想要的字符串即可。
有的人要问为什么前面要有*(int*)和(char*)?因为无法直接由地址修改,所以需要转换成整型来修改,下面的(char*)是由于要先转换成字符串再转整型。
最后把这代码加到加载函数内,让石器的登陆器启动加载即可。