吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3834|回复: 4
收起左侧

[CrackMe] crackme 找来的,去NAG破解

[复制链接]
逍遥枷锁 发表于 2013-8-20 08:01
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 逍遥枷锁 于 2013-8-20 08:05 编辑

这个CM找来的,试了下这儿没搞掉,老在系统领空,去NAG破解,有兴趣的可以试下。
希望搞定的说下过程,谢谢。祝大家愉快,吾爱越来越火,谢谢。共同努力。
在OD运行有检测就弹出检测窗口。VB编写,搞定了分享了下过程,让菜鸟学习下。
看着这窗口我很郁闷,【你在干什么】,问我想干什么,肯定想撕破它了,可是没办法,失败了。呵呵。


主窗口

附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

四裤全输 发表于 2013-8-20 08:43
P-CODE的,用OD不好搞,不过话说这个CM好眼熟,好像以前遇到过一个除背景颜色之外其他都一模一样的。

免费评分

参与人数 1热心值 +1 收起 理由
逍遥枷锁 + 1 我很赞同!

查看全部评分

 楼主| 逍遥枷锁 发表于 2013-8-20 09:05
四裤全输 发表于 2013-8-20 08:43
P-CODE的,用OD不好搞,不过话说这个CM好眼熟,好像以前遇到过一个除背景颜色之外其他都一模一样的。

嗯,有什么方式说下,我试下P-CODE,谢谢。
马斯维尔 发表于 2013-8-20 12:02
p-code的。看得心烦。。



用VBExplorer反编译代码。关键代码:

[Form.Initialize]   //窗体初始化时候就会检测调试器
:00402958  047AFF                          FLdRfVar                   ;Push LOCAL_0086
***********Reference To:sub_00402B0C
:0040295B  1000070500                      ThisVCallHresult           ;Call ptr_0040253B
:00402960  6B7AFF                          FLdI2                      ;Push WORD [LOCAL_0086]  //这个就是检测调试器的标志,有调试器是为FF
:00402963  F4FF                            LitI2_Byte                 ;Push FF      //如果是FF值就是有调试器
:00402965  C6                              EqI2                       ;             //检测是否相等
:00402966  1C7300                          BranchF                    ;If Pop=0 then ESI=004029CB   // 这里将00402966处的1C修改为1E就能过检测调试器
:00402969  27F8FE                          LitVar                     ;PushVar LOCAL_0108
:0040296C  2718FF                          LitVar                     ;PushVar LOCAL_00E8
******Possible String Ref To->"提示"
:0040296F  3A48FF0C00                      LitVarStr                  ;PushVarString ptr_00401F44
:00402974  4E38FF                          FStVarCopyObj              ;[LOCAL_00C8]=vbaVarDup(Pop)
:00402977  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
:0040297A  F500000000                      LitI4                      ;Push 00000000
******Possible String Ref To->"what are you doing?"
:0040297F  3A68FF0D00                      LitVarStr                  ;PushVarString ptr_00401F18
:00402984  4E58FF                          FStVarCopyObj              ;[LOCAL_00A8]=vbaVarDup(Pop)
:00402987  0458FF                          FLdRfVar                   ;Push LOCAL_00A8
**********Reference To->msvbvm60.rtcMsgBox   //弹出消息框
:0040298A  0A0E001400                      ImpAdCallFPR4              ;Call ptr_00401058; check stack 0014; Push EAX
:0040298F  36080058FF38FF18                FFreeVar                   ;Free 0008/2 variants
:0040299A  F5FF000000                      LitI4                      ;Push 000000FF
:0040299F  21                              FLdPrThis                  ;[SR]=[stack2]
:004029A0  0F0803                          VCallAd                    ;Return the control index 04
:004029A3  19F4FE                          FStAdFunc                  ;
:004029A6  08F4FE                          FLdPr                      ;[SR]=[LOCAL_010C]


[Timer2.Timer]  //关键的检测在这个事件里面!
:00402898  21                              FLdPrThis                  ;[SR]=[stack2]
:00402899  0F0403                          VCallAd                    ;Return the control index 03
:0040289C  1934FF                          FStAdFunc                  ;
:0040289F  2848FF0200                      LitVarI2                   ;PushVarInteger 0002
:004028A4  F502000000                      LitI4                      ;Push 00000002
:004028A9  5134FF                          FLdZeroAd                  ;Push DWORD [LOCAL_00CC]; [LOCAL_00CC]=0
:004028AC  FD6F68FF                        CVarAd                     ;
:004028B0  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
**********Reference To->msvbvm60.rtcMidCharVar

:004028B3  0A02001000                      ImpAdCallFPR4              ;Call ptr_00401046; check stack 0010; Push EAX
:004028B8  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
:004028BB  60                              CStrVarTmp                 ;
:004028BC  3178FF                          FStStr                     ;SysFreeString [LOCAL_0088]; [LOCAL_0088]=Pop
:004028BF  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:004028C2  36060068FF48FF38                FFreeVar                   ;Free 0006/2 variants
:004028CB  0430FF                          FLdRfVar                   ;Push LOCAL_00D0
:004028CE  21                              FLdPrThis                  ;[SR]=[stack2]
:004028CF  0F0403                          VCallAd                    ;Return the control index 03
:004028D2  1934FF                          FStAdFunc                  ;
:004028D5  0834FF                          FLdPr                      ;[SR]=[LOCAL_00CC]
***********Reference To:[propget]TextBox.Text

:004028D8  0DA0000100                      VCallHresult               ;Call ptr_00401ED0    //获取输入框的内容
:004028DD  6C30FF                          ILdRf                      ;Push DWORD [LOCAL_00D0]  //将输入框内容入栈
:004028E0  4A                              FnLenStr                   ;vbaLenBstr  //获取栈中数据长度
:004028E1  F507000000                      LitI4                      ;Push 00000007  //0x07
:004028E6  E0                              GeI4                       ;        //如果长度>=0x07
:004028E7  2F30FF                          FFree1Str                  ;SysFreeString [LOCAL_00D0]; [LOCAL_00D0]=0
:004028EA  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:004028ED  1C6000                          BranchF                    ;If Pop=0 then ESI=004028F8  //这里是关键跳
***********Reference To:sub_0040279C

:004028F0  10FC060500                      ThisVCallHresult           ;Call ptr_00402527  //这个是必须要调用的!!!
:004028F5  1E7500                          Branch                     ;ESI=0040290D
******Possible String Ref To->""  //如果004028ED的BranchF跳的话那么Lable.Caption将会是"" (空的)

:004028F8  1B0000                          LitStr                     ;Push ptr_00401ECC
:004028FB  21                              FLdPrThis                  ;[SR]=[stack2]
:004028FC  0F0803                          VCallAd                    ;Return the control index 04
:004028FF  1934FF                          FStAdFunc                  ;
:00402902  0834FF                          FLdPr                      ;[SR]=[LOCAL_00CC]
***********Reference To:[propput]Label.Caption

:00402905  0D54000400                      VCallHresult               ;Call ptr_00401EE0
:0040290A  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:0040290D  13                              ExitProcHresult            ;


上面004028F0处调用的那个call是这个!!!

[sub_0040279C]   
:00402738  21                              FLdPrThis                  ;[SR]=[stack2]
:00402739  0F0403                          VCallAd                    ;Return the control index 03
:0040273C  1934FF                          FStAdFunc                  ;
:0040273F  2848FF0200                      LitVarI2                   ;PushVarInteger 0002
:00402744  F502000000                      LitI4                      ;Push 00000002
:00402749  5134FF                          FLdZeroAd                  ;Push DWORD [LOCAL_00CC]; [LOCAL_00CC]=0
:0040274C  FD6F68FF                        CVarAd                     ;
:00402750  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
**********Reference To->msvbvm60.rtcMidCharVar
:00402753  0A02001000                      ImpAdCallFPR4              ;Call ptr_00401046; check stack 0010; Push EAX
:00402758  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
:0040275B  60                              CStrVarTmp                 ;
:0040275C  3178FF                          FStStr                     ;SysFreeString [LOCAL_0088]; [LOCAL_0088]=Pop
:0040275F  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:00402762  36060068FF48FF38                FFreeVar                   ;Free 0006/2 variants
:0040276B  0478FF                          FLdRfVar                   ;Push LOCAL_0088
:0040276E  4D58FF0840                      CVarRef                    ;
**********Reference To->msvbvm60.rtcIsNumeric  //判断输入的是否是数字!!!!
:00402773  0B03000400                      ImpAdCallI2                ;Call ptr_0040104C; check stack 0004; Push EAX
:00402778  1C5B00                          BranchF                    ;If Pop=0 then ESI=00402793   //这里是关键跳!!!!!
******Possible String Ref To->""   
:0040277B  1B0000                          LitStr                     ;Push ptr_00401ECC
:0040277E  21                              FLdPrThis                  ;[SR]=[stack2]
:0040277F  0F0803                          VCallAd                    ;Return the control index 04
:00402782  1934FF                          FStAdFunc                  ;
:00402785  0834FF                          FLdPr                      ;[SR]=[LOCAL_00CC]
***********Reference To:[propput]Label.Caption  //如果00402778的BranchF没有跳的话那么Lable.Caption将会是"" (空的)
:00402788  0D54000400                      VCallHresult               ;Call ptr_00401EE0
:0040278D  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:00402790  1E6000                          Branch                     ;ESI=00402798
***********Reference To:sub_00402854
:00402793  1004070500                      ThisVCallHresult           ;Call ptr_0040254F   //这个是必须要调用的!!!
:00402798  13                              ExitProcHresult            ;
:00402799  00FF                            LargeBos                   ;IDE beginning of line with FF byte codes
:0040279B  FF                              Unknown                    ;


上面00402793处调用的那个call是这个!!!

[sub_00402854]
:004027E0  21                              FLdPrThis                  ;[SR]=[stack2]
:004027E1  0F0403                          VCallAd                    ;Return the control index 03
:004027E4  1934FF                          FStAdFunc                  ;
:004027E7  2848FF0200                      LitVarI2                   ;PushVarInteger 0002
:004027EC  F505000000                      LitI4                      ;Push 00000005
:004027F1  5134FF                          FLdZeroAd                  ;Push DWORD [LOCAL_00CC]; [LOCAL_00CC]=0
:004027F4  FD6F68FF                        CVarAd                     ;
:004027F8  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
**********Reference To->msvbvm60.rtcMidCharVar
:004027FB  0A02001000                      ImpAdCallFPR4              ;Call ptr_00401046; check stack 0010; Push EAX
:00402800  0438FF                          FLdRfVar                   ;Push LOCAL_00C8
:00402803  60                              CStrVarTmp                 ;
:00402804  3178FF                          FStStr                     ;SysFreeString [LOCAL_0088]; [LOCAL_0088]=Pop
:00402807  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:0040280A  36060068FF48FF38                FFreeVar                   ;Free 0006/2 variants
:00402813  0478FF                          FLdRfVar                   ;Push LOCAL_0088
:00402816  4D58FF0840                      CVarRef                    ;
**********Reference To->msvbvm60.rtcIsNumeric  //又判断一次是否是数字
:0040281B  0B03000400                      ImpAdCallI2                ;Call ptr_0040104C; check stack 0004; Push EAX
:00402820  1C5B00                          BranchF                    ;If Pop=0 then ESI=0040283B   //这里是关键跳
******Possible String Ref To->"Good job"   //终于到正确提示了!!!!!
:00402823  1B0B00                          LitStr                     ;Push ptr_00401F00
:00402826  21                              FLdPrThis                  ;[SR]=[stack2]
:00402827  0F0C03                          VCallAd                    ;Return the control index 05
:0040282A  1934FF                          FStAdFunc                  ;
:0040282D  0834FF                          FLdPr                      ;[SR]=[LOCAL_00CC]
***********Reference To:[propput]Label.Caption  //正确提示会用Label.Caption的形式显示出来
:00402830  0D54000400                      VCallHresult               ;Call ptr_00401EE0
:00402835  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:00402838  1E7000                          Branch                     ;ESI=00402850
******Possible String Ref To->""    //这里和上面一样是""的提示(空)
:0040283B  1B0000                          LitStr                     ;Push ptr_00401ECC
:0040283E  21                              FLdPrThis                  ;[SR]=[stack2]
:0040283F  0F0803                          VCallAd                    ;Return the control index 04
:00402842  1934FF                          FStAdFunc                  ;
:00402845  0834FF                          FLdPr                      ;[SR]=[LOCAL_00CC]
***********Reference To:[propput]Label.Caption
:00402848  0D54000400                      VCallHresult               ;Call ptr_00401EE0
:0040284D  1A34FF                          FFree1Ad                   ;Push [LOCAL_00CC]; Call [[[LOCAL_00CC]]+8]; [[LOCAL_00CC]]=0
:00402850  13                              ExitProcHresult            ;
:00402851  00FF                            LargeBos                   ;IDE beginning of line with FF byte codes
:00402853  FF                              Unknown                    ;


综上分析,爆破点为:
1.  00402966   1C 修改为 1E
2.  00402778   1C 修改为 1D




测试时,输入7位或以上数字就行。 还可以进一步破解的,由于时间关系就没有仔细分析了。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1热心值 +1 收起 理由
逍遥枷锁 + 1 我很赞同!

查看全部评分

 楼主| 逍遥枷锁 发表于 2013-8-20 12:20
马斯维尔 发表于 2013-8-20 12:02
p-code的。看得心烦。。

我晕死,以前都用OD,这些都不用,想不到怎么给力,谢谢,什么东西都出来了,纠结。给力。工具收藏了,谢谢。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表