补充以下 ,首先 得 感谢 书呆彭 的 帮助
其实说来 没一点技术含量,
首先:我 使用 OD 打开,发现根本找不到API 的切入点,我一脸茫然
然后才知道是vb程序,我之前没有反汇编过VB的 p-code 程序,幸好 高人帮助,我就下了
VBdebugger 与 VBexplorer
然后打开比较后,还是用vbexplorer静态汇编好,
破解如下:
1。[Command1.Click]
**********Reference To-> sub_0040BF78
|
:0040B564 0B03000000 ImpAdCallI2 ;Call ptr_004020E0; check stack 0000; Push EAX
:0040B569 2370FF FStStrNoPop ;SysFreeString [LOCAL_0090]; [LOCAL_0090]=[stack]
:0040B56C 0474FF FLdRfVar ;Push LOCAL_008C
:0040B56F 050400 ImpAdLdRf ;Push ptr
:0040B572 240500 NewIfNullPr ;[Pop] [SR]
:0040B575 0F0003 VCallAd ;Return the control index 02
:0040B578 1978FF FStAdFunc ;
:0040B57B 0878FF FLdPr ;[SR]=[LOCAL_0088]
***********Reference To:[propget]TextBox.Text
|
:0040B57E 0DA0000600 VCallHresult ;Call ptr_00404914
:0040B583 6C74FF ILdRf ;Push DWORD [LOCAL_008C]
:0040B586 FB3D NeStr ;
:0040B588 32040070FF74FF FFreeStr ;Do SysFreeString [arg_n]; [arg_n]=0 0004/2 times ~ arg
:0040B58F 1A78FF FFree1Ad ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
:0040B592 1C5B00 BranchF ;If Pop=0 then ESI=0040B5BF
:0040B595 27F0FE LitVar ;PushVar LOCAL_0110
:0040B598 2710FF LitVar ;PushVar LOCAL_00F0
:0040B59B 2730FF LitVar ;PushVar LOCAL_00D0
:0040B59E F500000000 LitI4 ;Push 00000000
******Possible String Ref To->"×i2l? 2t?ièg"
|
:0040B5A3 3A60FF0700 LitVarStr ;PushVarString ptr_00404B04
:0040B5A8 4E50FF FStVarCopyObj ;[LOCAL_00B0]=vbaVarDup(Pop)
:0040B5AB 0450FF FLdRfVar ;Push LOCAL_00B0
**********Reference To->msvbvm60.rtcMsgBox
修改 爆破语句 0040B592 1C5B00 BranchF
改为 1D5B00
2。
文件 存在 自较检
在 Form2 的时间timer1 控件中
[Timer1.Timer]
******Possible String Ref To->"×ܹ²"
|
:0040BC28 1B0F00 LitStr ;Push ptr_004041E0
:0040BC2B 0460FF FLdRfVar ;Push LOCAL_00A0
:0040BC2E 21 FLdPrThis ;[SR]=[stack2]
:0040BC2F 0F7C03 VCallAd ;Return the control index 21
:0040BC32 1978FF FStAdFunc ;
:0040BC35 0878FF FLdPr ;[SR]=[LOCAL_0088]
:0040BC38 6168FF07000000 LateIdLdVar ;
:0040BC3F FDF30300 CastAdVar ;vbaCastObj
:0040BC43 1964FF FStAdFunc ;
:0040BC46 0864FF FLdPr ;[SR]=[LOCAL_009C]
:0040BC49 0D1C000300 VCallHresult ;Call ptr_00404178
:0040BC4E 6C60FF ILdRf ;Push DWORD [LOCAL_00A0]
:0040BC51 FBFE CStrI4 ;vbaStrI4
:0040BC53 235CFF FStStrNoPop ;SysFreeString [LOCAL_00A4]; [LOCAL_00A4]=[stack]
:0040BC56 2A ConcatStr ;vbaStrCat
:0040BC57 2358FF FStStrNoPop ;SysFreeString [LOCAL_00A8]; [LOCAL_00A8]=[stack]
******Possible String Ref To->"Ì "
|
:0040BC5A 1B1000 LitStr ;Push ptr_004041EC
:0040BC5D 2A ConcatStr ;vbaStrCat
:0040BC5E 2354FF FStStrNoPop ;SysFreeString [LOCAL_00AC]; [LOCAL_00AC]=[stack]
:0040BC61 21 FLdPrThis ;[SR]=[stack2]
:0040BC62 0F1403 VCallAd ;Return the control index 07
:0040BC65 1950FF FStAdFunc ;
:0040BC68 0850FF FLdPr ;[SR]=[LOCAL_00B0]
***********Reference To:[propput]Label.Caption
|
:0040BC6B 0D54001100 VCallHresult ;Call ptr_004041F0
:0040BC70 3206005CFF58FF54 FFreeStr ;Do SysFreeString [arg_n]; [arg_n]=0 0006/2 times ~ arg
:0040BC79 29060078FF64FF50 FFreeAd ;
:0040BC82 3568FF FFree1Var ;Free LOCAL_0098
**********Reference To-> sub_0040BF78
|
:0040BC85 0B38000000 ImpAdCallI2 ;Call ptr_004020E0; check stack 0000; Push EAX
:0040BC8A 2358FF FStStrNoPop ;SysFreeString [LOCAL_00A8]; [LOCAL_00A8]=[stack]
:0040BC8D 045CFF FLdRfVar ;Push LOCAL_00A4
:0040BC90 053200 ImpAdLdRf ;Push ptr
:0040BC93 243300 NewIfNullPr ;[Pop] [SR]
:0040BC96 0F0003 VCallAd ;Return the control index 02
:0040BC99 1978FF FStAdFunc ;
:0040BC9C 0878FF FLdPr ;[SR]=[LOCAL_0088]
***********Reference To:[propget]TextBox.Text
|
:0040BC9F 0DA0003900 VCallHresult ;Call ptr_00404914
:0040BCA4 6C5CFF ILdRf ;Push DWORD [LOCAL_00A4]
:0040BCA7 FB3D NeStr ;
:0040BCA9 32040058FF5CFF FFreeStr ;Do SysFreeString [arg_n]; [arg_n]=0 0004/2 times ~ arg
:0040BCB0 1A78FF FFree1Ad ;Push [LOCAL_0088]; Call [[[LOCAL_0088]]+8]; [[LOCAL_0088]]=0
:0040BCB3 1CB900 BranchF ;If Pop=0 then ESI=0040BCE1
:0040BCB6 27E0FE LitVar ;PushVar LOCAL_0120
:0040BCB9 2700FF LitVar ;PushVar LOCAL_0100
:0040BCBC 2720FF LitVar ;PushVar LOCAL_00E0
:0040BCBF F500000000 LitI4 ;Push 00000000
******Possible String Ref To->"Ï Í Æ ½ £PÃsà Ì0´0£0µ0È
¶*³*Ð*¹o±s³bÐe"
|
:0040BCC4 3A40FF3A00 LitVarStr ;PushVarString ptr_00404928
:0040BCC9 4E68FF FStVarCopyObj ;[LOCAL_0098]=vbaVarDup(Pop)
:0040BCCC 0468FF FLdRfVar ;Push LOCAL_0098
**********Reference To->msvbvm60.rtcMsgBox
在:0040BCB3 1CB900 BranchF
处 爆破
为1DB900
我不太想研究他的算法了,比较累了,希望高人继续完成,如有不对之处,欢迎指点
终于了却了楼主的心愿,心情挺舒畅的 。。。