-
-
[旧帖] [原创]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期)