首先打开软件, 发现注册这个软件需要一个 dll 文件, 很自然的想法就是伪装一个 dll 文件给它

直接新建一个 txt 写上 11111111111111
, 保存为 dll

我们注册, 发现没有效果


查壳, 不知道有没有壳, OD 载入
这一堆代码不知道是啥, 反正不是易语言通常的 OEP

我们搜索字符串, 啥都没有
我们运行程序看看, 再搜索字符串
还是什么都没有
注意, 像这种情况, 你搜不到字符串的时候, 有可能它的字符串是放在了别的文件中
我们 Alt+E, 发现程序调用了 4 个文件

我们挨个进去搜字符串
在这里搜索一下 未注册
, 没找到



既然都找不到字符串, 那我还逆个屁啊 !
目录 Table of Contents
说明一下, 这几行是在绑定机器码

咳咳咳, 刚才我们发现这个 抢
是个按钮, 我们就试一下按钮事件
我们 Ctrl+B 搜索一下二进制字符串 FF 55 FC 5F 5E
, 没有按钮事件
这里说明一下, 非独立编译的时候, 你会看到这个文件 krnln.fnr

我们在这里面下按钮事件断点, Ctrl+L 查找下一个, 我们都给下断
下了两个断点, 易语言差不多就这么两个按钮事件了
我们 F9 运行, 发现有这么个类似暗桩的东西, 导致你到不了按钮事件, 干扰你下按钮事件
这时候我们打开 PC Hunter, 我们右键查看定时器
把这些时钟全部删掉

我们回到 OD, F9 运行, 点一下那个 抢
, 程序断下来

我们 F7 进去, 然后 F8 单步, 发现过一会就回去了
那我们不点这个按钮了, 我们就让它在判断真假码的时候断下来, 我们点注册, 我们先取消这个断点, 不然它干扰我们选择文件
我们运行, 然后导入我们的假注册码 dll 文件, 这时候我们把按钮事件断点下回来
点击注册, 程序断下来

F7 进去, F8 单步, 注意堆栈窗口和寄存器窗口
发现一堆可疑字符串

这有个最可疑的, 我们把它复制出来 : 0012E87C 08B05FD8 ASCII "d126514b67fb00c4256c93f0a0442709"

还有一个可疑的 : 0012E87C 08B05FD8 ASCII "cc846727fa649eb90a405e0d53fd9fd1"

继续跟下去, 发现出 call
了, 离开了按钮事件
那这样的话, 我们不跟了, 把我们的 dll 修改一下, 点注册没反应, 说明第一个注册码是不对的, 我们试下第二个, 依旧没反应
我们把断点下回来, 然后注册, F7 进去
这个时候, 我们看地址发现程序回去了, 就是程序运行的时候调用了 krnln, 然后 krnln 运行的时候又调用了程序

我们再搜一下字符串, 竟然找到了
很容易就找到了关键跳, 直接 nop
然后保存
已经注册, 大功告成