您的位置:首页精文荟萃破解文章 → 谈谈VB程序的破解(续)

谈谈VB程序的破解(续)

时间:2004/10/15 0:50:00来源:本站整理作者:蓝点我要评论(0)

 

 


    上次写了VB程序的破解一文,这次因为发现那个方法不是通用的,所以特别写一篇续.其实我这2篇文章并不是专门用于破解在启动时检测的程序的,我只是想说一个方法,利用VB中的事件,于是轻松找到程序的关键,各位要是有兴趣可以跟一下,很简单.废话少说,运行VB6,新建一个工程,然后添加一个模块,双击模块,删除Form,再输入:
Sub Main
MsgBox ("test!")
End
End Sub
然后编译成本机代码,在这种情况下,我以前说的办法就没有用了,大家还是跟我来吧.

还是TRW载入,然后慢慢跟就到了这里.
......
0187:6600DE5B FF1518110066    CALL    `KERNEL32!GetStartupInfoA`
0187:6600DE61 0FB745D0        MOVZX    EAX,WORD [EBP-30]
0187:6600DE65 A3D8F71066      MOV      [6610F7D8],EAX
0187:6600DE6A FF35CCF61066    PUSH    DWORD [6610F6CC]
0187:6600DE70 56              PUSH    ESI
0187:6600DE71 BE70F41066      MOV      ESI,6610F470
0187:6600DE76 8BCE            MOV      ECX,ESI
0187:6600DE78 E860000000      CALL    6600DEDD        //进去
......
(省略过程)
......
0187:******** FF9694000000    CALL    NEAR [ESI+94]        //这里F8进去就返回程序领空了,我们又成功的停在了VB代码开始的地方.
0187:******** 8D45D4          LEA      EAX,[EBP-2C]
0187:******** 50              PUSH    EAX
0187:******** E807030000      CALL    66014710
0187:******** 6A01            PUSH    BYTE +01
0187:******** 58              POP      EAX
0187:******** 5F              POP      EDI
0187:******** 5E              POP      ESI
0187:******** C9              LEAVE 
0187:******** C20400          RET      04
......
0187:00401628 6A00            PUSH    BYTE +00
0187:0040162A 50              PUSH    EAX
0187:0040162B FF151C104000    CALL    `MSVBVM60!rtcMsgBox`    //这里就是MsgBox了
0187:00401631 8D4DB0          LEA      ECX,[EBP-50]
0187:00401634 8D55C0          LEA      EDX,[EBP-40]
0187:00401637 51              PUSH    ECX
0187:00401638 8D45D0          LEA      EAX,[EBP-30]
0187:0040163B 52              PUSH    EDX
0187:0040163C 8D4DE0          LEA      ECX,[EBP-20]
0187:0040163F 50              PUSH    EAX
0187:00401640 51              PUSH    ECX
0187:00401641 6A04            PUSH    BYTE +04
0187:00401643 FF1508104000    CALL    `MSVBVM60!__vbaFreeVarList`
0187:00401649 83C414          ADD      ESP,BYTE +14
0187:0040164C FF150C104000    CALL    `MSVBVM60!__vbaEnd`    //然后程序End
0187:00401652 6876164000      PUSH    DWORD 00401676
0187:00401657 EB1C            JMP      SHORT 00401675


后记:
    还有一种情况,是某个Crackme,是用VB6编写的,我用了2种办法都不能断下来(其实是作者不按常理出牌).自己新建一个工程,然后编译为本机代码,试试看,还能不能用上面的办法断下来?也就是说,在程序启动时(或检验注册码前)没有任何的事件,真的是很搞笑的一件事,这样的程序,跟踪只会在Msvbvm60.dll中,然后用ShowWindow显示窗口,也就是说程序根本不是在启动时进行检测的(或者说检测时没有产生任何事件?可能吗?).
    我以为按我的方法,只要在VB程序中使用了事件或模块,无论是程序刚启动或已运行,只要用TRW在这2处下了断点,都能轻易的找到程序的关键处.如果各位有什么意见和看法,还请指正

    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程