鼠标打字(高级版)iii 修正

xingyun86 2019-11-18 342

搜了这个输入法“鼠标打字(高级版)”下载。


先上ida,以为是加壳了,然后搜了下ThunRTMain,发现这东西是Visual Basic(以下简称VB)程序的入口,然后搜索VB相关的工具,找到了VB Decompiler(以下简称VBD),官网下载的免费版是lite版,功能不全,然后在吾爱破解的爱盘找到了VB.Decompiler.Pro.v10.1.Cracked.by.yoza[RET].rar。


这个输入法软件设置了时间检查,所以直接打开会弹出这个更新提示,但官网已没,在快照网站上能找到最终的页面是https://web.archive.org/web/20110205144606/http://www.hoabc.com/。

接下来就是瞎猫碰死耗子时间。将exe拖到VBD中,可以看到如下信息。


这个软件有两个窗口,一个是tt4,一个是tt,Startup="tt"代表了启动窗口是tt,打开tt对应的代码。

VB里Form_Load代表窗口创建完之后开始执行的函数,类似Android开发里的OnCreate函数。这里可以看到提示"请到http://www.hoabc.com更新最新版本"的原因是var_9A <= 0了,var_9A是两个时间var_90(当前时间)和var_98(2012年5月31日)的时间差(相差天数),所以只要改大var_98的值即可。

根据反汇编和十六进制编辑器页面,可以看到LitI2 2012(F3 DC 07),其中LitI2应该对应F3,十六进制的0x7DC就是十进制的2012,这句代表读取一个短整型的立即数,而LitI2_Byte(F4)就应该是读取一个字节的立即数,感觉很像现代.NET的IL中间语言,对于2010V3.9.1这个版本,用十六进制编辑器打开exe,例如我用的是010editor,直接搜索字节串F4 1F F4 05 F3 DC 07。

可以搜到两个,其中一个是tt窗口的,另一个是tt4窗口的,经测试目前可以改到2109年(月和日我没改),而且两个都需要修改,否则会在启动后又弹一次提示对话框。以下是tt4窗口的的Form_Load函数。

改完是这样的。

之后再运行可能会提示,或者按右键也会弹出一些需要注册的提示,例如这样。

其实可以在tt窗口的Form_Load里看到这段话,主要就是判断了global_52这个值是否为1/2/4其中的一个,如果匹配到了,就不弹提示,看上面的代码,最方便的就是让global_52为4,也就是让Proc_1_9_44A494(global_52, global_244, global_54)这次调用的结果返回"r",进入这个函数可以看到以下语句。

其中var_88应该是返回值,这里"t"和"r"应该代表"trial"和"registered",所以只需要让把var_88 = var_98改成var_88 = "r"即可,转到反汇编界面可以看到以下内容。

把这句ILdRf var_98(地址是44A48A,长度是44A48D-44A48A=3)改成LitStr "r"(地址是44A484,长度是44A487-44A484=3)即可,再看十六进制。

也就是把后面的6C 68 FF改成1B 19 00即可,再用十六进制编辑器搜索一下。

由于会搜到多个,所以我多写了几个字节,终于只找到一个,改完的状态是这样的。

再次打开软件,没有提示了。右键和联想功能也都有了。


不过这个软件在win10 1903上无法正常使用,编码有问题,也就是平时说的乱码,我在win7SP1下测试了下,没问题,可以使用。


×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回