- UID
- 49047
注册时间2008-5-1
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 奋斗 2025-1-6 18:17 |
---|
签到天数: 153 天 [LV.7]常住居民III
|
本来在坛子上看到高手们都讲新手不要去搞VB程序,一直都没敢动手
今天偶然用到个程序,看到是upx的壳,顺手单步跟踪脱它衣服玩
脱下来发现程序带了自校验
运行一下一闪而过
再查壳:Microsoft Visual Basic 5.0 / 6.0
心想正好今天休息,整整VB自校验看看
于是痛苦的一天开始了……
被里面的jmp和call拖着满世界跑,一直按到手指头发软也没搞清楚方向
没办法,只好开了两个od对着看,10分钟前终于到了关键跳转的地方
7348F18E 8A4A 74 MOV CL,BYTE PTR DS:[EDX+74]
7348F191 B8 00C00000 MOV EAX,0C000
7348F196 F6C1 03 TEST CL,3
7348F199 0F85 65470000 JNZ msvbvm60.73493904
7348F19F ^ EB D9 JMP SHORT msvbvm60.7348F17A
7348F1A1 8975 EC MOV DWORD PTR SS:[EBP-14],ESI
7348F1A4 33C0 XOR EAX,EAX
7348F1A6 8A46 01 MOV AL,BYTE PTR DS:[ESI+1]
7348F1A9 83C6 02 ADD ESI,2
7348F1AC FF2485 58FA4873 JMP DWORD PTR DS:[EAX*4+7348FA58]
7348F1B3 59 POP ECX
7348F1B4 66:0BC9 OR CX,CX
7348F1B7 /75 12 JNZ SHORT msvbvm60.7348F1CB ////////关键跳
7348F1B9 0FB736 MOVZX ESI,WORD PTR DS:[ESI]
7348F1BC 0375 A8 ADD ESI,DWORD PTR SS:[EBP-58]
7348F1BF 33C0 XOR EAX,EAX
7348F1C1 8A06 MOV AL,BYTE PTR DS:[ESI]
7348F1C3 46 INC ESI
7348F1C4 FF2485 58FA4873 JMP DWORD PTR DS:[EAX*4+7348FA58]
7348F1CB 33C0 XOR EAX,EAX
7348F1CD 8A46 02 MOV AL,BYTE PTR DS:[ESI+2]
7348F1D0 83C6 03 ADD ESI,3
7348F1D3 FF2485 58FA4873 JMP DWORD PTR DS:[EAX*4+7348FA58]
7348F1DA 833C24 00 CMP DWORD PTR SS:[ESP],0
程序处于msvbvm60领空,该跳转在运行88次后开始判断文件大小,如果大于原始大小就退出
如果改为je后运行,程序按钮上的标题全部为空
再追,发现第89次运行该处时判断大小,如果大小符合条件,程序还会再调用该处42次
改为je后运行就会出错
调试状态下第89次运行该处跳转改为je,f8后再改回来,程序运行正常。
现在的问题是如何破解这个自校验呢?/:0111" />1" /> 烦请高手指点!感激不尽!:loveliness:
程序也打包在附件供参考,谢谢!
[ 本帖最后由 beijingren 于 2009-7-1 11:45 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|