好友
阅读权限35
听众
最后登录1970-1-1
|
本帖最后由 jidesheng6 于 2019-7-9 12:52 编辑
首先来说一下这个软件,这个软件是只能在清华同方有还原卡的电脑上用的
不能再家里分析,今天去学校把过程截图下来再写的
截图很匆忙,有些地方可能不好,见谅
软件破解方法很多,用了最简单的nop,大佬不要喷我
软件和他的守护进程secmon.exe互相依存,大概意思就是,主程序被关闭,secmon会重启主程序,secmon被关闭,主程序会重启secmon,所以要先把secmon冻结,结束secmon,然后再结束主程序
开始正题
1.首先来看一下文件所在的位置:C:\Program Files\THTF 如下图:
2.机房没有查壳的软件,我在家里已经查过一次,无壳,说一下这个软件,默认是隐藏托盘图标,打开不会显示主界面的,alt+m呼出托盘,右键可以进行登陆
3.右键登陆弹出这个窗口
4.接着打开od,选择文件-附加-选择刚才那个登陆框
这个时候这个窗口会假死,不要管他,一开始载入不是和图片一样的,要f8单步运行到retn出去才是段首,图片忘了截取了
大概是f8会到这里:
单步到retn会来到这里(只是类似,不一定就是这里)
特别说一下,这个软件的字符串都是英文,读配置文件翻译成中文的
5.接着点击运行,输入密码,会提示密码错误
然后我们暂停,选择k,查看他的函数调用(这个很显然就是messagebox函数)
直接在这里选择显示调用,跟到调用函数的call地方
大概是这里
[Asm] 纯文本查看 复制代码 0051B8D2 /$ 55 push ebp
0051B8D3 |. 8BEC mov ebp,esp
0051B8D5 |. 83EC 08 sub esp,0x8
0051B8D8 |. 894D F8 mov [local.2],ecx
0051B8DB |. 837D 0C 00 cmp [arg.2],0x0
0051B8DF |. 75 08 jnz short EzMonito.0051B8E9
0051B8E1 |. E8 761F0600 call EzMonito.0057D85C
0051B8E6 |. 8945 0C mov [arg.2],eax
0051B8E9 |> 8B45 10 mov eax,[arg.3]
0051B8EC |. 50 push eax
0051B8ED |. 8B4D 0C mov ecx,[arg.2]
0051B8F0 |. 51 push ecx
0051B8F1 |. 8B55 08 mov edx,[arg.1]
0051B8F4 |. 52 push edx
0051B8F5 |. 8B4D F8 mov ecx,[local.2]
0051B8F8 |. E8 DFB90500 call EzMonito.005772DC
0051B8FD |. 50 push eax ; |hOwner = NULL
0051B8FE |. FF15 A4328600 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
0051B904 |. 8945 FC mov [local.1],eax
0051B907 |. 8B45 FC mov eax,[local.1]
0051B90A |. 8BE5 mov esp,ebp
0051B90C |. 5D pop ebp ; user32.767339C0
到段首没有找到跳过call的跳转,应该是个子call,运行到段尾,出call再看
出去这个子call,就在这里看到了jmp跳转,但是没跳过去
[Asm] 纯文本查看 复制代码
004286D8 |. /E9 AA000000 jmp EzMonito.00428787
004286DD |> |6A 10 push 0x10
004286DF |. |8D4D E8 lea ecx,[local.6]
004286E2 |. |E8 53831400 call EzMonito.00570A3A
004286E7 |. |50 push eax
004286E8 |. |8D4D E4 lea ecx,[local.7]
004286EB |. |E8 4A831400 call EzMonito.00570A3A
004286F0 |. |50 push eax
004286F1 |. |8B4D F0 mov ecx,[local.4]
004286F4 |. |E8 D9310F00 call EzMonito.0051B8D2
004286F9 |. |8B4D F0 mov ecx,[local.4]
004286FC |. |81C1 F8060000 add ecx,0x6F8
但是在004286dd出发现有一个跳转,刚好是可以跳过jmp的,跟到这个地址
这个就是关键跳转了,我下了断点运行了一次,也是断在这里了,先把这里nop掉
然后保存文件出去就可以了,因为每次冻结比较烦,就用e语言写了个快速执行的
然后把文件保存出去,关闭od,结束主程序的进程,替换原来的文件
打开运行一次,直接回车
......这密码可能是存在信息框里面的....
然后密码这样就可以找到了,也可以找关键call来得到,但是这种方法就简单有效,密码还显而易见
这个过程就结束了 然后重复结束进程操作,替换原来没破解的文件,输密码就行了,还原系统,也会帮你还原过去的,下次也可以再输入密码执行
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|