首页
社区
课程
招聘
[旧帖] [原创]PLC模拟软件PATCH 0.00雪花
发表于: 2011-5-21 22:43 2713

[旧帖] [原创]PLC模拟软件PATCH 0.00雪花

2011-5-21 22:43
2713

【软件名称】: PLC 模拟软件
【下载地址】: 无
【保护方式】: 无壳
【编写语言】:Microsoft Visual C++ v7.1 DLL
【使用工具】: PEID 0.95  Olldbg1.10  
【操作平台】: XP sp3
【软件介绍】: PLC 模拟软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
      工作中碰到一个PLC模拟软件aaa.exe,它可以在服务器上运行,想研究研究,于是拷到自己机子上,可是运行就报错,确认就退出了,查看log文件提示是没注册,如下:
Message: Licence is invalid. Current state: Trial period expired
说明一下它的主要功能在一个DLL文件里(bbb.DLL),而注册也在该DLL里,仔细研究才发现,由于通讯需要,DLL里做了个HTTP  server ,端口在18500,然后顺利成章的把注册的界面也做到HTTP里了,访问http://localhost:18500/bbb/home.htm就可以查看信息了,奇怪的是我并没发现HTM文件,用EXESCOPE打开bbb.DLL才发现HTM在它的资源里,因为HTTP SERVER是DLL文件加载并执行才提供的,因此在aaa.exe运行报错后,不要确认,这时HTTP SERVER已好,在IE打开上面的网页就来到注册界面如下

这种注册方法还是第一次碰到,很显然因为是注册界面在网页里,函数参考 GetWindowText,MessageBox,以及字串参考和按钮断点都不适用了,该如何办?毛主席说过一切敌人都是纸老虎,让我们想想,虽然输入信息在网页里,但提交后数据肯定要传给程序进行验证,先附加aaa.exe,F9 运行,然后任意输入注册码,点unlock,弹出对话框如下

好了,我们先在bbb.DLL的代码段下一个断点,然后再输入注册码,点UNLOCK,OD断下来在10010C4A
代码如下:

10010C44    FF15 8CF20110   CALL DWORD PTR DS:[<&WS2_32.#18>]        ; WS2_32.select
10010C4A    8985 B8F7FFFF   MOV DWORD PTR SS:[EBP-848],EAX
10010C50    EB 1D           JMP SHORT bbb.10010C6F
................
10010C6F    83BD B8F7FFFF 0>CMP DWORD PTR SS:[EBP-848],0
10010C76    0F85 88000000   JNZ bbb.10010D04
.............
10010D04    6A 00           PUSH 0
10010D06    68 00080000     PUSH 800
10010D0B    8D8D BCF7FFFF   LEA ECX,DWORD PTR SS:[EBP-844]
10010D11    51              PUSH ECX
10010D12    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]
10010D15    8B42 08         MOV EAX,DWORD PTR DS:[EDX+8]
10010D18    50              PUSH EAX
10010D19    FF15 84F20110   CALL DWORD PTR DS:[<&WS2_32.#16>]        ; WS2_32.recv
10010D1F    8985 B4F7FFFF   MOV DWORD PTR SS:[EBP-84C],EAX
10010D25    83BD B4F7FFFF 0>CMP DWORD PTR SS:[EBP-84C],0

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//