首页
社区
课程
招聘
[~~~~不玩可惜~~~~] 新鲜出炉!热气腾腾
发表于: 2007-3-24 17:54 6178

[~~~~不玩可惜~~~~] 新鲜出炉!热气腾腾

2007-3-24 17:54
6178
新鲜出炉!热气腾腾

作者:台州学院 屈礼军

下载地址:

http://www.live-share.com/files/185460/SCG__CRACKME.rar.html

对无法上传图片表示不满!我还想图文并茂呢!

新鲜出炉!热气腾腾的CRACKME啊,推荐新手来玩玩,一定很有味道。

这里是“SCG雪神CRACKME.exe”的下载:(欢迎来破解)挺有意思的

下载地址  http://www.live-share.com/files/185460/SCG__CRACKME.rar.html

注意,用户名和注册码都不能为空,而且必须是整数(数字)

破文打包: http://www.live-share.com/files/185495/__.rar.html

http://www.live-share.com/files/185519/__maple.rar.html

首先查壳,PEID看出是FSG2.0的,脱壳机看雪里有的;虽然简单,我们还是来手

动脱壳!载入程序:一开始就到壳的入口点了,下面开始手脱~

00400154 >  8725 E8C94100   XCHG DWORD PTR DS:[41C9E8],ESP   未说明就一路F8
0040015A    61              POPAD
0040015B    94              XCHG EAX,ESP
0040015C    55              PUSH EBP
0040015D    A4              MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040015E    B6 80           MOV DH,80
00400160    FF13            CALL DWORD PTR DS:[EBX]
00400162  ^ 73 F9           JNB SHORT SCG雪神C.0040015D
00400164    33C9            XOR ECX,ECX                      F4到这里
00400166    FF13            CALL DWORD PTR DS:[EBX]
00400168    73 16           JNB SHORT SCG雪神C.00400180
0040016A    33C0            XOR EAX,EAX
0040016C    FF13            CALL DWORD PTR DS:[EBX]
0040016E    73 1F           JNB SHORT SCG雪神C.0040018F
00400170    B6 80           MOV DH,80
00400172    41              INC ECX
00400173    B0 10           MOV AL,10
00400175    FF13            CALL DWORD PTR DS:[EBX]
00400177    12C0            ADC AL,AL
00400179  ^ 73 FA           JNB SHORT SCG雪神C.00400175
0040017B    75 3A           JNZ SHORT SCG雪神C.004001B7      F4到这里
0040017D    AA              STOS BYTE PTR ES:[EDI]
0040017E  ^ EB E0           JMP SHORT SCG雪神C.00400160
00400180    FF53 08         CALL DWORD PTR DS:[EBX+8]        F4到这里
00400183    02F6            ADD DH,DH
00400185    83D9 01         SBB ECX,1
00400188    75 0E           JNZ SHORT SCG雪神C.00400198
0040018A    FF53 04         CALL DWORD PTR DS:[EBX+4]
0040018D    EB 24           JMP SHORT SCG雪神C.004001B3
0040018F    AC              LODS BYTE PTR DS:[ESI]
00400190    D1E8            SHR EAX,1
00400192    74 2D           JE SHORT SCG雪神C.004001C1
00400194    13C9            ADC ECX,ECX
00400196    EB 18           JMP SHORT SCG雪神C.004001B0

004001A4   /73 0A           JNB SHORT SCG雪神C.004001B0
004001A6   |80FC 05         CMP AH,5
004001A9   |73 06           JNB SHORT SCG雪神C.004001B1
004001AB   |83F8 7F         CMP EAX,7F
004001AE   |77 02           JA SHORT SCG雪神C.004001B2
004001B0   \41              INC ECX
004001B1    41              INC ECX
004001B2    95              XCHG EAX,EBP
004001B3    8BC5            MOV EAX,EBP
004001B5    B6 00           MOV DH,0
004001B7    56              PUSH ESI
004001B8    8BF7            MOV ESI,EDI
004001BA    2BF0            SUB ESI,EAX
004001BC    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
004001BE    5E              POP ESI
004001BF  ^ EB 9F           JMP SHORT SCG雪神C.00400160  
004001C1    5E              POP ESI                          F4到这里
004001C2    AD              LODS DWORD PTR DS:[ESI]
004001C3    97              XCHG EAX,EDI

004001C2    AD              LODS DWORD PTR DS:[ESI]
004001C3    97              XCHG EAX,EDI
004001C4    AD              LODS DWORD PTR DS:[ESI]
004001C5    50              PUSH EAX
004001C6    FF53 10         CALL DWORD PTR DS:[EBX+10]
004001C9    95              XCHG EAX,EBP
004001CA    8B07            MOV EAX,DWORD PTR DS:[EDI]
004001CC    40              INC EAX
004001CD  ^ 78 F3           JS SHORT SCG雪神C.004001C2
004001CF    75 03           JNZ SHORT SCG雪神C.004001D4
004001D1    FF63 0C         JMP DWORD PTR DS:[EBX+C]
         
这一段咋一看,傻乐!如果你没接触过FSC2.0的话,相信也能觉察到这里似乎是

个死循环但程序一定能从这一段出去,那么在哪里呢?对了,就是这个可疑的

JMP,我们移动鼠标到004001D1这一行,F2下断点,单击运行;F2再次取消断

点,然后按ENTER键到了程序入口点  

                                                              
004001D4    50              PUSH EAX     这里来断点
004001D5    55              PUSH EBP
004001D6    FF53 14         CALL DWORD PTR DS:[EBX+14]
004001D9    AB              STOS DWORD PTR ES:[EDI]
004001DA  ^ EB EE           JMP SHORT SCG雪神C.004001CA

**********************************************************程序入口
00401250      68            DB 68                                                  ;  CHAR 'h'   程序入口点了
00401251      44            DB 44                                                  ;  CHAR 'D'
00401252      B2            DB B2
00401253      40            DB 40                                                  ;  CHAR '@'
00401254      00            DB 00
00401255      E8            DB E8
00401256      F0            DB F0
00401257      FF            DB FF
00401258      FF            DB FF
00401259      FF            DB FF
0040125A      00            DB 00
0040125B      00            DB 00
0040125C      00            DB 00
0040125D      00            DB 00
0040125E      00            DB 00
0040125F      00            DB 00
00401260      30            DB 30                                                  ;  CHAR '0'
00401261      00            DB 00
00401262      00            DB 00
00401263      00            DB 00
00401264      38            DB 38                                                  ;  CHAR '8'

到了程序入口点后,按F2下断点,运行程序!然后再次取消断点。单击鼠标右

键,(如图)


从模块中删除分析,还以原来的面貌。好了,该在这里脱壳了(当然你也可以带

壳调试,我喜欢一层一层,简单化)你可以用OD自带的插件OLLDUMP来脱壳,选

用第一种模式;这里一次就脱成功了,有时脱不好,需要用Import REC来修复

表,大小改成1000,多抓取输入表内容然后第一层跟踪一下,将没用的全部CUT

掉,然后选取文件修复。一般就可以了,实在不行就自己跟进去,手动修复。但

是在这里很奇怪了,我在学校机房里脱这个程序时无法直接运行,修复后才可

以;但在寝室里的电脑上就一次成功!奇怪了,有人知

道就跟一下帖子指教一下。系统用的都是GHOST原版镜象拷贝。

杀毒:

NOD32  AVG 费尔防火墙  是不是XP版本之间的差别?

好了,脱壳保存可执行文件为1.exe,再次PEID查壳,VB5.0/6.0

脱壳就告一段落了,这个CRACKME是我们老大雪神(大一啊)学了一两节课的VB

后就迫不及待写来玩玩和学习的。

要求成员们都去熟悉VB破解,每天都进步些。

毕竟这年头很多软件都是VB写出来的。

呵呵,所以这个VB程序写的应该是挺简单和破烂的,朋友们不要见外。

听老大雪神说是加入了RND随机数,来迷惑别人的。

整个是明码比较,算法,呵呵等会儿在说。我们把“SCG雪神CRACKME.EXE”和

“注册机.EXE”都传来,供初学者乐乐。整体来讲,听说简单的。

我们接着来:

选择调试――关闭。我们转来调试“1.EXE”

加载“1.EXE”

00401250 >/$  68 44B24000   PUSH 1.0040B244
00401255  |.  E8 F0FFFFFF   CALL <JMP.&MSVBVM60.ThunRTMain>
0040125A  |.  0000          ADD BYTE PTR DS:[EAX],AL
0040125C  |.  0000          ADD BYTE PTR DS:[EAX],AL
0040125E  |.  0000          ADD BYTE PTR DS:[EAX],AL
00401260  |.  3000          XOR BYTE PTR DS:[EAX],AL
00401262  |.  0000          ADD BYTE PTR DS:[EAX],AL
00401264  |.  3800          CMP BYTE PTR DS:[EAX],AL
00401266  |.  0000          ADD BYTE PTR DS:[EAX],AL
00401268  |.  0000          ADD BYTE PTR DS:[EAX],AL
0040126A  |.  0000          ADD BYTE PTR DS:[EAX],AL
0040126C  |.  1B83 416AD147 SBB EAX,DWORD PTR DS:[EBX+47D16A41]
00401272  |.  27            DAA
00401273  |.  4C            DEC ESP
00401274  |.  91            XCHG EAX,ECX
00401275  |.  1950 09       SBB DWORD PTR DS:[EAX+9],EDX
00401278  |.  5C            POP ESP
00401279  |.  83D7 88       ADC EDI,-78
0040127C  |.  0000          ADD BYTE PTR DS:[EAX],AL
0040127E  |.  0000          ADD BYTE PTR DS:[EAX],AL

直接运行程序

单击鼠标右键,选择“查找”――“当前模块中的名称”

选择“rtcmsgbox”,双击来到:






00401030 > .  292F4773     DD MSVBVM60.rtcMsgBox                                  来到这里
00401034 > .  9A624873      DD MSVBVM60._adj_fdiv_m16i
00401038 > .  9A634873      DD MSVBVM60._adj_fdivr_m16i
0040103C > .  F39D4973      DD MSVBVM60.__vbaFpR4
00401040 > .  64B34873      DD MSVBVM60._CIsin
00401044 > .  AF443B73      DD MSVBVM60.__vbaChkstk                                ;  ASCII "QWP="
00401048 > .  6FD83A73      DD MSVBVM60.EVENT_SINK_AddRef
0040104C > .  13483B73      DD MSVBVM60.__vbaStrCmp
00401050 > .  8A694873      DD MSVBVM60._adj_fpatan
00401054 > .  D8594773      DD MSVBVM60.__vbaStrR8
00401058 > .  85E33B73      DD MSVBVM60.EVENT_SINK_Release
0040105C > .  09B44873      DD MSVBVM60._CIsqrt
00401060 > .  7C674673      DD MSVBVM60.EVENT_SINK_QueryInterface
00401064 > .  5B4E3B73      DD MSVBVM60.__vbaExceptHandler
00401068 > .  1D664873      DD MSVBVM60._adj_fprem
0040106C > .  4E634873      DD MSVBVM60._adj_fdivr_m64
00401070 > .  7F9D4973      DD MSVBVM60.__vbaFPException
00401074 > .  A1B24873      DD MSVBVM60._CIlog

在这里设置断点!填入用户名111和假注册码222,单击注册,马上就能在

右下角堆栈窗口看到你的假码和真的注册码,它们的下面那行是“真注册码-假

注册码”的结果。

00401030 > .  292F4773      DD MSVBVM60.rtcMsgBox  在这里断点

填入用户名111和注册码222后,单击注册,等会儿应该会有OD出错信息,没关

系,我们第一层次要找的东西绝对在右下角堆栈中:



堆栈内容:

0014D3AC   00000000
0014D3B0   00000000
0014D3B4   733BF2D0  MSVBVM60.733BF2D0
0014D3B8   00000004
0014D3BC   00000007
0014D3C0   00000000
0014D3C4   0000100F
0014D3C8   00000000
0014D3CC   0015191C  UNICODE "20640007371" 真注册码
0014D3D0   00151874  UNICODE "222"  假注册码
0014D3D4   00000001
0014D3D8   001518AC  UNICODE "20640007149"   

“20640007371-222=20640007149”

这里,如果结果为零,也就注册成功了

0014D3DC   00000000
0014D3E0   00000000
0014D3E4   0040BA70  1.0040BA70

数据记下来,退出OD,然后填入“破解我1.EXE”,

填入用户名:111 注册码:20640007371

单击注册:


天哪,错了,我想是自己找错了注册码了。

不甘心,小心翼翼地又填入了一边,蹑手蹑脚地、语无伦次地、逐字逐句地,然

后单击“注册”~~

结果伴随着“中计啦”窗口跳出――果然是错的。

怎么办?

放弃了吧!

不行!?

还要接着分析的话,那么就来吧!

换种方式,打开“VBExplorer”来准确地查找事件(前提是程序已经脱壳,而且

是VB写的)



左下角来看看:属性:里面有:command1 commandbutton 项目


如图选择:Click事件,地址:40BE50



好了,将数据记下来,关闭“VBExplorer”,打开OD加载“1.EXE”,让程序先运行起来,

单击鼠标右键转到表达式:40BE50,按ENTER到了这里:


0040BE50   > \55            PUSH EBP    这里
0040BE51   .  8BEC          MOV EBP,ESP
0040BE53   .  83EC 0C       SUB ESP,0C

(如图)在这里下断点

然后,在程序界面里输入:用户名:111 注册码:222

单击“注册”

好了断下来了:(以下跟算法关系紧密,直接体现了算法,我破VB功力不太够,

所以注释不多;还请见谅!达人自己研究吧!)为了减少篇幅,我将下面的很多

中间代码删除了,想研究齐全的代码就自己来破解这个东东吧,也就是从

40BE50-----40D29F这么多了。

0040BFED   .  7D 12         JGE SHORT 1.0040C001
0040BFEF   .  68 A0000000   PUSH 0A0
0040BFF4   .  68 FCB64000   PUSH 1.0040B6FC
0040BFF9   .  57            PUSH EDI
0040BFFA   .  50            PUSH EAX
0040BFFB   .  FF15 1C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresultCheckObj>]   ;  MSVBVM60.__vbaHresultCheckObj
0040C001   >  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]                          ;  这里,能看到堆栈 SS:[0012F4F0]=001565F4, (UNICODE  
"222")也就是我们输入的假注册码
0040C004   .  51            PUSH ECX
0040C005   .  68 10B74000   PUSH 1.0040B710
0040C00A   .  FF15 4C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]            ;  MSVBVM60.__vbaStrCmp
0040C010   .  8BF8          MOV EDI,EAX
0040C012   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
0040C015   .  F7DF          NEG EDI
0040C017   .  1BFF          SBB EDI,EDI
0040C019   .  47            INC EDI
0040C01A   .  F7DF          NEG EDI
0040C01C   .  FF15 B8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]           ;  MSVBVM60.__vbaFreeStr
0040C022   .  8D4D E0       LEA ECX,DWORD PTR SS:[EBP-20]
0040C025   .  FF15 BC104000 CALL DWORD PTR

省略...

0040C124   .  68 A0000000   PUSH 0A0
0040C129   .  68 FCB64000   PUSH 1.0040B6FC
0040C12E   .  57            PUSH EDI
0040C12F   .  50            PUSH EAX
0040C130   .  FF15 1C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresultCheckObj>]   ;  MSVBVM60.__vbaHresultCheckObj
0040C136   >  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]
0040C139   .  8B46 3C       MOV EAX,DWORD PTR DS:[ESI+3C]
0040C13C   .  51            PUSH ECX
0040C13D   .  8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX
0040C143   .  8D7E 34       LEA EDI,DWORD PTR DS:[ESI+34]
0040C146   .  FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaR8Str>]             ;  MSVBVM60.__vbaR8Str
0040C14C   .  DB85 44FFFFFF FILD DWORD PTR SS:[EBP-BC]
0040C152   .  8B85 44FFFFFF MOV EAX,DWORD PTR SS:[EBP-BC]
0040C158   .  69C0 B6580600 IMUL EAX,EAX,658B6
0040C15E   .  DD9D 3CFFFFFF FSTP QWORD PTR SS:[EBP-C4]
0040C164   .  DC8D 3CFFFFFF FMUL QWORD PTR SS:[EBP-C4]
0040C16A   .  DC25 18114000 FSUB QWORD PTR DS:[401118]

省略...

0040D1AB   .  FF15 B8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]           ;  MSVBVM60.__vbaFreeStr
0040D1B1   .  8B0F          MOV ECX,DWORD PTR DS:[EDI]
0040D1B3   .  51            PUSH ECX
0040D1B4   .  FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaR8Str>]             ;  MSVBVM60.__vbaR8Str
0040D1BA   .  DC1D C8104000 FCOMP QWORD PTR DS:[4010C8]
0040D1C0   .  B9 04000280   MOV ECX,80020004
0040D1C5   .  894D A8       MOV DWORD PTR SS:[EBP-58],ECX
0040D1C8   .  894D B8       MOV DWORD PTR SS:[EBP-48],ECX
0040D1CB   .  DFE0          FSTSW AX
0040D1CD   .  F6C4 40       TEST AH,40
0040D1D0   .  B8 0A000000   MOV EAX,0A
0040D1D5   .  8945 A0       MOV DWORD PTR SS:[EBP-60],EAX
0040D1D8   .  8945 B0       MOV DWORD PTR SS:[EBP-50],EAX
0040D1DB   .  74 7E         JE SHORT 1.0040D25B                                    ;  关键跳转!这里是关键,跳走了就完蛋了。可以爆破!
0040D1DD   .  8B3D 9C104000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]         ;  MSVBVM60.__vbaVarDup
0040D1E3   .  8D55 80       LEA EDX,DWORD PTR SS:[EBP-80]
0040D1E6   .  8D4D C0       LEA ECX,DWORD PTR SS:[EBP-40]
0040D1E9   .  C745 88 6CB74>MOV DWORD PTR SS:[EBP-78],1.0040B76C
0040D1F0   .  C745 80 08000>MOV DWORD PTR SS:[EBP-80],8
0040D1F7   .  FFD7          CALL EDI                                               ;  <&MSVBVM60.__vbaVarDup>
0040D1F9   .  8D55 90       LEA EDX,DWORD PTR SS:[EBP-70]
0040D1FC   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]
0040D1FF   .  C745 98 4CB74>MOV DWORD PTR SS:[EBP-68],1.0040B74C
0040D206   .  C745 90 08000>MOV DWORD PTR SS:[EBP-70],8
0040D20D   .  FFD7          CALL EDI
0040D20F   .  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
0040D212   .  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
0040D215   .  52            PUSH EDX
0040D216   .  8D4D C0       LEA ECX,DWORD PTR SS:[EBP-40]
0040D219   .  50            PUSH EAX
0040D21A   .  51            PUSH ECX
0040D21B   .  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
0040D21E   .  6A 40         PUSH 40
0040D220   .  52            PUSH EDX
0040D221   .  FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.rtcMsgBox>]              ;  MSVBVM60.rtcMsgBox 调用注册成功信息
0040D227   .  50            PUSH EAX
0040D228   .  FF15 08104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrI4>]             ;  MSVBVM60.__vbaStrI4
0040D22E   .  8BD0          MOV EDX,EAX
0040D230   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
0040D233   .  FF15 A8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]           ;  MSVBVM60.__vbaStrMove
0040D239   .  8BD0          MOV EDX,EAX
0040D23B   .  8D4E 44       LEA ECX,DWORD PTR DS:[ESI+44]
0040D23E   .  FFD3          CALL EBX
0040D240   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
0040D243   .  FF15 B8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]           ;  MSVBVM60.__vbaFreeStr
0040D249   .  8D45 A0       LEA EAX,DWORD PTR SS:[EBP-60]
0040D24C   .  8D4D B0       LEA ECX,DWORD PTR SS:[EBP-50]
0040D24F   .  50            PUSH EAX
0040D250   .  8D55 C0       LEA EDX,DWORD PTR SS:[EBP-40]
0040D253   .  51            PUSH ECX
0040D254   .  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]
0040D257   .  52            PUSH EDX
0040D258   .  50            PUSH EAX
0040D259   .  EB 7C         JMP SHORT 1.0040D2D7
0040D25B   >  8B3D 9C104000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>]         ;  MSVBVM60.__vbaVarDup
0040D261   .  8D55 80       LEA EDX,DWORD PTR SS:[EBP-80]
0040D264   .  8D4D C0       LEA ECX,DWORD PTR SS:[EBP-40]
0040D267   .  C745 88 9CB74>MOV DWORD PTR SS:[EBP-78],1.0040B79C
0040D26E   .  C745 80 08000>MOV DWORD PTR SS:[EBP-80],8
0040D275   .  FFD7          CALL EDI                                               ;  <&MSVBVM60.__vbaVarDup>
0040D277   .  8D55 90       LEA EDX,DWORD PTR SS:[EBP-70]
0040D27A   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]
0040D27D   .  C745 98 78B74>MOV DWORD PTR SS:[EBP-68],1.0040B778
0040D284   .  C745 90 08000>MOV DWORD PTR SS:[EBP-70],8
0040D28B   .  FFD7          CALL EDI
0040D28D   .  8D4D A0       LEA ECX,DWORD PTR SS:[EBP-60]
0040D290   .  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
0040D293   .  51            PUSH ECX
0040D294   .  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
0040D297   .  52            PUSH EDX
0040D298   .  50            PUSH EAX
0040D299   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]
0040D29C   .  6A 20         PUSH 20
0040D29E   .  51            PUSH ECX
0040D29F   .  FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.rtcMsgBox>]              ;  MSVBVM60.rtcMsgBox 调用注册失败的提示
0040D2A5   .  50            PUSH EAX
0040D2A6   .  FF15 08104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrI4>]             ;  MSVBVM60.__vbaStrI4
0040D2AC   .  8BD0          MOV EDX,EAX
0040D2AE   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
0040D2B1   .  FF15 A8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]           ;  MSVBVM60.__vbaStrMove
0040D2B7   .  8BD0          MOV EDX,EAX
0040D2B9   .  8D4E 48       LEA ECX,DWORD PTR DS:[ESI+48]
0040D2BC   .  FFD3          CALL EBX
0040D2BE   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
0040D2C1   .  FF15 B8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeStr>]           ;  MSVBVM60.__vbaFreeStr
0040D2C7   .  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
0040D2CA   .  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
0040D2CD   .  52            PUSH EDX
0040D2CE   .  8D4D C0       LEA ECX,DWORD PTR SS:[EBP-40]
0040D2D1   .  50            PUSH EAX
0040D2D2   .  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
.
.
.

上面老长的代码是从截获按扭命令开始,到注册失败的完整过程。

可以看到:

其中加入了许多随机因数,也就是说一个用户名有许多个注册码,也许只有几

个,但可以肯定是不止一个,而且就算你获得的注册码是正确的,也可能第一次

注册不成功,你多试几次,就能成功!当然,如果是不正确的注册码,恐怕多试

N次也不会成功。

这个思路可以应用到共享软件的加密上,我没有去找相关信息,因为要上课了;

估计应该有人想到了吧?!呵呵

我们得出的结论是写共享软件时,屏蔽掉许多实用功能,只有注册成功后才能解

开封锁,客户通过正常手段获得了注册码(比方你很肯定得告诉软件购买者:用

这个帐号绝对可以,但可能要多实几次,直到成功)

以后再注册失败也不会影响你的功能就好了。

当然,写共享软件时应该选用非明码比较,而且比较的地方不止一个,起码几十

个,而且每一个都隔得很远。这样才能防止程序过简单地被人破解。

算法部分如果是自己研究的,就搞个几百几千行,自己回忆不起来了没有关系

的,在写代码时保存好算法可以了。世界上没有破解不掉的软件,只有无限接近

无法破解的加密。也就是说让软件在它的生命周期里不要遭受盗版就完全够用

了,几年后它也就丧失了应有的价值了,那时基本上会有别的软件来替代你的

了。就算到时被破解了,损失也不大。

好了,快要去听老师讲课了,写些重点,上面代码我没时间讲情楚,VB破解功力

不够啊哈哈。我自己不太讲得清楚。

有兴趣的来试试。感谢雪神老大,哈哈!他也是和

我一样刚学得一节课VB,迫不及待得写了“SCG雪神CRACKME.exe”CRACKME,

当作SCG的初级入会题。现在他同意公开算法,毕竟我们也都是菜鸟啊。

但十年后谁还敢这么说?

初生牛犊不怕虎!这个代码写得我自己都知道烂,烂归烂,能用就算了。

过些天等我们正式开课了,我们就好好挖掘它的方法和作用。在这里景仰那些大

虾们!向你们致敬。

越早接触这些东西,就越早能应用到实践中。

下面写下它的算法注册机:(就用VB吧,我们这学期开VB课程,刚正式上了两节

课,偶有了一点感悟,虽然老师连实际操作都还没讲)

VB算法代码:

Option Explicit

Dim a As String

Dim b As String

Dim c As Long

Dim m As String

Const x = 415926

Const y = 358979

Const z = 846264

Private Sub Command1_Click()

Label4.Visible = False

If Text1.Text = "" Then

m = MsgBox("您忘记输入用户名了!", 0 + 64 + 0, "提示:")

Else

End If

Text2.Visible = True

Text2.Enabled = True

Label2.Visible = True

c = Rnd

a = Text1.Text * c - y + z - x * c

c = Rnd

a = a * c + x * c

c = Rnd

a = a * c + y * c = Rnd

a = Text1.Text * c - y + z - x * c

c = Rnd

a = a * c + x * c = Rnd

a = Text1.Text * c - y + z - x * c

c = Rnd

a = a * c + x * c

c = Rnd

a = a * c + y * c

c = Rnd

a = a * c + y * c

c = Rnd

a = Text1.Text * c - y + z - x * c

c = Rnd

a = a * c + x * c

a = a * c + y * c

a = a + x + y + z

c = Rnd

a = Text1.Text * c - y + z - x * c

c = Rnd

a = a * c + x * c

c = Rnd

a = a * c + y * c

c = Rnd

a = Text1.Text * c - y + z - x * c

a = a * c + x * c

a = a * c + y * c

a = a + x + y + z

a = a + x + y + z

a = a + x + y + z

If c = 0 Then

a = a * 314 + y * 314 - z * 314

Else

a = y * 314 - a * 31 - z * 77

End If

c = Rnd

If c = 0 Then

a = y * 24 + z * 25 + z + 55

Else

a = y * 45 + z * 14 + a * 15

End If

Text2.Text = a

Text2.Enabled = False

End Sub

Private Sub Form_Load()

Text2.Enabled = False

Text2.Visible = False

Label2.Visible = False

End Sub

本想搞个内存注册机,简单些;可发现在这台机器上(装有NOD32、AVG、费尔)

的机器上,根本用不出来。直接把俺的工具杀掉了

只能向雪神老大借些代码,写程序吧

这里,编译好了注册机,请您用用吧,满足我的小小虚荣~汗!

谁用谁知道~~呵呵~~

于是又疯狂地多按了许多次“注册”,同样的用户名,同样的注册码,嘿嘿,成

功了:


这是算法注册机:
http://www.live-share.com/files/185463/_____.rar.html

2007/3/24

SCG maple

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
貌似不错。。。顶一下
2007-3-24 18:29
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
支持下,我看中了这个vb代码
2007-3-24 20:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
初文啊,顶!顶!下来玩玩
2007-3-24 22:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
  我是菜鸟级人物,虽然看不懂,但全力支持!!!顶!!!!!!!!!!
一定努力, 这个时代最重要的是什么?---------------------------------------人才! 加油<给我们做个好榜样,向你学习!!!!
2007-3-24 23:08
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
6
不好意思,忘记了现在我在论坛里署名应该是“爱琴海”;
我竟然忘了就直接输入以前常用的“maple”了,呵呵,同一个人!特此声明。

谢谢组员支持!一定会越来越厉害的。大家只要坚持不懈就一定能一起进步。
2007-3-24 23:33
0
雪    币: 383
活跃值: (41)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
7
新鲜出炉!热气腾腾 !刚出炉的包子咧~!
2007-3-25 11:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
真不错,有些看不明白,努力学习中……
2007-3-25 23:51
0
雪    币: 1355
活跃值: (339)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
9
好大的雨,天气真糟糕!呵呵,几天唱歌很开心,吉他弹唱了好多~呵呵!没事就来看看.
2007-3-26 20:47
0
雪    币: 195
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习!!!!!!!!
2011-8-6 15:27
0
雪    币: 97697
活跃值: (200839)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
11
哪年的貼

Welcome forum.forum is a home.

Please respect the copyright from the Internet.
Пожалуйста, уважайте авторское право в Интернете.
來源于互聯網, 請尊重版權.
所發資源全部來自對互聯網公共資源的收集和整理,僅供學習之用,請于下載后24小時自行刪除!
Issued by all the resources of public resources from the Internet to collect and collate, study purposes only,
please delete themselves 24 hours after downloading!
Выпущено всеми ресурсами государственных ресурсов из Интернет
а на сбор и обобщение, изучение целей, пожалуйста, удалите себя
24 часов после скачивания!
You can Google.

Программное обеспечение выпуска и Windows Crack Обучение
Нам-Dabei Guanyin Бодхисаттва Нам без митабха
2011-8-6 15:51
0
游客
登录 | 注册 方可回帖
返回
//