- 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
 
 
 
 
 |