首页
社区
课程
招聘
[求助]cool edit脱壳后怎样解决自校验
2005-6-6 15:49 4348

[求助]cool edit脱壳后怎样解决自校验

2005-6-6 15:49
4348
声音编辑软件cool edit用UPX Shell脱壳后运行显示错误,我没有找到起自校验点。
1. 脱壳后的程序第一次运行到以下后就错误:
0047F80F---
---------一直到下面;
0047FC88   |. /75 1A       |jnz short coolpro2.0047FCA4 //不跳
0047FC8A   |. |8D8D 20FDFF>|lea ecx,dword ptr ss:[ebp-2E0]
0047FC90   |. |51          |push ecx                                       ; /pMsg
0047FC91   |. |FF15 301569>|call dword ptr ds:[<&USER32.TranslateMessage>] ; \TranslateMessage
0047FC97   |. |8D95 20FDFF>|lea edx,dword ptr ss:[ebp-2E0]
0047FC9D   |. |52          |push edx                                       ; /pMsg
0047FC9E   |. |FF15 081769>|call dword ptr ds:[<&USER32.DispatchMessageA>] ; \DispatchMessageA
0047FCA4   |> \A1 A4466E00 |mov eax,dword ptr ds:[6E46A4]
0047FCA9   |.  85C0        |test eax,eax
0047FCAB   |.  74 24       |je short coolpro2.0047FCD1 //显示出错误窗口
----
0047FCDD   |.^\E9 2DFBFFFF \jmp coolpro2.0047F80F
2. 原程序运行到以后没有错误提示:
0047F80F---
---------一直到下面;
0047FC88   |. /75 1A       |jnz short coolpro2.0047FCA4  //不跳
0047FC8A   |. |8D8D 20FDFF>|lea ecx,dword ptr ss:[ebp-2E0]
0047FC90   |. |51          |push ecx                                       ; /pMsg
0047FC91   |. |FF15 301569>|call dword ptr ds:[<&USER32.TranslateMessage>] ; \TranslateMessage
0047FC97   |. |8D95 20FDFF>|lea edx,dword ptr ss:[ebp-2E0]
0047FC9D   |. |52          |push edx                                       ; /pMsg
0047FC9E   |. |FF15 081769>|call dword ptr ds:[<&USER32.DispatchMessageA>] ; \DispatchMessageA
0047FCA4   |> \A1 A4466E00 |mov eax,dword ptr ds:[6E46A4]
0047FCA9   |.  85C0        |test eax,eax
0047FCAB   |.  74 24       |je short coolpro2.0047FCD1  //没有错误提示
----
0047FCDD   |.^\E9 2DFBFFFF \jmp coolpro2.0047F80F //一直循环下去

请问各位大侠,这种是怎么自校验的啊。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
只喝芬达的狗 2005-6-7 15:43
2
0
看你贴的代码好像和这个crackme差不多

http://bbs.pediy.com/showthread.php?s=&threadid=14302

我也不会破,谁教教啊
雪    币: 194
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Bdv20 2005-6-8 09:11
3
0
谢谢你的回复。
我又看了看,原来修改一下可以运行,只是每次都要改:
0047F80F---
---------一直到下面;
0047FC88   |. /75 1A       |jnz short coolpro2.0047FCA4 //修改代码,让第一次跳过,再改回来。就可以跳过错误提示。
0047FC8A   |. |8D8D 20FDFF>|lea ecx,dword ptr ss:[ebp-2E0]
0047FC90   |. |51          |push ecx                                       ; /pMsg
0047FC91   |. |FF15 301569>|call dword ptr ds:[<&USER32.TranslateMessage>] ; \TranslateMessage
0047FC97   |. |8D95 20FDFF>|lea edx,dword ptr ss:[ebp-2E0]
0047FC9D   |. |52          |push edx                                       ; /pMsg
0047FC9E   |. |FF15 081769>|call dword ptr ds:[<&USER32.DispatchMessageA>] ; \DispatchMessageA
0047FCA4   |> \A1 A4466E00 |mov eax,dword ptr ds:[6E46A4]
0047FCA9   |.  85C0        |test eax,eax
0047FCAB   |.  74 24       |je short coolpro2.0047FCD1 //显示出错误窗口
----
0047FCDD   |.^\E9 2DFBFFFF \jmp coolpro2.0047F80F
是不是它有其他的线程在校验原程序啊,我还是没有搞明白。
还有奇怪的,我用UPX Shell解压后,再用UPX Shell压缩,还是有错误提示。压缩后的文件体积与解压前的一样啊。
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闪电狼 2005-6-8 09:38
4
0
0047FCAB   |.  74 24       |je short coolpro2.0047FCD1 //显示出错误窗口

这里改jmp呢
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
只喝芬达的狗 2005-6-8 16:13
5
0
和我发的那crackme是一样的,查查函数好像和消息有关系啊

难哦!
雪    币: 194
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Bdv20 2005-6-9 13:33
6
0
上面的代码要一直循环来处理程序的响应。除了第一次能修改来避免错误提示外,其他的都不能改,否则程序会出错。
程序运行后由8条线程来处理其他操作,主线程只是一直在上面的代码循环处理各种消息而已。
我估计这个校验也是由其他的线程来完成的,发消息给主线程来处理。
这个软件的加密也复杂,好大的一多表格啊
游客
登录 | 注册 方可回帖
返回