首页
社区
课程
招聘
[原创]初探逆向之URLegal破解
发表于: 2011-3-16 21:14 9078

[原创]初探逆向之URLegal破解

2011-3-16 21:14
9078

【文章标题】: 初探逆向之URLegal破解
【文章作者】: 代码疯子
【作者邮箱】: stackexploit@gmail.com
【操作系统】: Windows XP
【软件名称】: URLegal 3.3.0.0
【软件介绍】: 可以自动找出HTML文件中的断链接并自动对其进行修复
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD + PEID + IDA
【作者声明】: 纯属技术交流,没有其他目的。仅以本文献给跟我一样刚接触逆向的朋友,文章写得比较啰嗦,大牛们请飘过!

本人小菜,刚接触逆向,前几天看了传说中的天草破解教程,看到里面有一个拿一个国外软件URLegal来做例子,很是感兴趣,于是视频还没看完就自己动起手来进行分析,试图去分析注册码计算算法,奈何功底不足,最终只做了个内存注册机,但仍然倍感兴奋,故发帖于看雪。失误之处请指正。附件为内存注册机汇编源码

这个URLegal 3.3.0.0网上很多大型软件下载站有下载,请朋友们自己下载和安装。
首先,用PEID对目标程序进行查壳,发现没有加壳,显示“Microsoft Visual C++ 6.0”,很好,省的像我这样的初学者去脱壳了。

接下来,试着去注册一下,在“File->Register”菜单下可以进行注册,试着输入假码进行一下测试:Name填ForEduOnly,Code填112233445566778899。点击“Validate My Codes”,提示“Name / Code mis-match. Try again.”的消息框。以前看别人的分析帖子时,往往提到去搜索消息框中的字符串,那我们也来试试。

打开OD,将Urlegal.exe载入,然后在反汇编窗口中单击右键,选择“超级字串参考->ASCII”,接着在弹出的字符串窗口中Ctrl+F查找“Name / Code mis-match. Try again.”这个字符串。在找到字符串之后双击改行,来到程序中对应的位置,对应的子程序反汇编代码如下:

004025C6  /.  55            PUSH EBP
004025C7  |.  8BEC          MOV EBP,ESP
004025C9  |.  6A FF         PUSH -1
004025CB  |.  68 AA754100   PUSH Urlegal.004175AA                    ;  SE 处理程序安装
004025D0  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
004025D6  |.  50            PUSH EAX
004025D7  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
004025DE  |.  81EC 80000000 SUB ESP,80
004025E4  |.  898D 7CFFFFFF MOV DWORD PTR SS:[EBP-84],ECX
004025EA  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
004025EC  |.  8D4D 8C       LEA ECX,DWORD PTR SS:[EBP-74]            ; |
004025EF  |.  E8 8C120000   CALL Urlegal.00403880                    ; \Urlegal.00403880
004025F4  |.  C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0
004025FB  |.  8D4D 8C       LEA ECX,DWORD PTR SS:[EBP-74]
004025FE  |.  E8 09430100   CALL <JMP.&MFC42.#2514_?DoModal@CDialog@>
00402603  |.  83F8 01       CMP EAX,1
00402606  |.  0F85 D5000000 JNZ Urlegal.004026E1
0040260C  |.  E8 7FEEFFFF   CALL Urlegal.00401490
00402611  |.  8945 84       MOV DWORD PTR SS:[EBP-7C],EAX
00402614  |.  51            PUSH ECX
00402615  |.  8BCC          MOV ECX,ESP
00402617  |.  8965 80       MOV DWORD PTR SS:[EBP-80],ESP
0040261A  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
0040261D  |.  50            PUSH EAX
0040261E  |.  E8 71450100   CALL <JMP.&MFC42.#535_??0CString@@QAE@AB>
00402623  |.  8985 78FFFFFF MOV DWORD PTR SS:[EBP-88],EAX            ; |
00402629  |.  8D4D 88       LEA ECX,DWORD PTR SS:[EBP-78]            ; |
0040262C  |.  51            PUSH ECX                                 ; |Arg1
0040262D  |.  8B4D 84       MOV ECX,DWORD PTR SS:[EBP-7C]            ; |
00402630  |.  81C1 D0000000 ADD ECX,0D0                              ; |
00402636  |.  E8 AE310000   CALL Urlegal.004057E9                    ; \Urlegal.004057E9
0040263B  |.  8985 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EAX
00402641  |.  C645 FC 01    MOV BYTE PTR SS:[EBP-4],1
00402645  |.  8D4D 88       LEA ECX,DWORD PTR SS:[EBP-78]
00402648  |.  E8 C3050000   CALL Urlegal.00402C10
0040264D  |.  85C0          TEST EAX,EAX
0040264F  |.  75 76         JNZ SHORT Urlegal.004026C7
00402651  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
00402654  |.  52            PUSH EDX                                 ; /Arg2
00402655  |.  8D45 88       LEA EAX,DWORD PTR SS:[EBP-78]            ; |
00402658  |.  50            PUSH EAX                                 ; |Arg1
00402659  |.  E8 02060000   CALL Urlegal.00402C60                    ; \Urlegal.00402C60
0040265E  |.  25 FF000000   AND EAX,0FF
00402663  |.  85C0          TEST EAX,EAX
00402665  |.  74 60         JE SHORT Urlegal.004026C7
00402667  |.  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
0040266A  |.  E8 E1050000   CALL Urlegal.00402C50
0040266F  |.  50            PUSH EAX                                 ; /Arg3
00402670  |.  68 04E24100   PUSH Urlegal.0041E204                    ; |name
00402675  |.  68 0CE24100   PUSH Urlegal.0041E20C                    ; |user
0040267A  |.  8B4D 84       MOV ECX,DWORD PTR SS:[EBP-7C]            ; |
0040267D  |.  81C1 C4000000 ADD ECX,0C4                              ; |
00402683  |.  E8 AD450000   CALL Urlegal.00406C35                    ; \Urlegal.00406C35
00402688  |.  8D4D EC       LEA ECX,DWORD PTR SS:[EBP-14]
0040268B  |.  E8 C0050000   CALL Urlegal.00402C50
00402690  |.  50            PUSH EAX                                 ; /Arg3
00402691  |.  68 14E24100   PUSH Urlegal.0041E214                    ; |code
00402696  |.  68 1CE24100   PUSH Urlegal.0041E21C                    ; |user
0040269B  |.  8B4D 84       MOV ECX,DWORD PTR SS:[EBP-7C]            ; |
0040269E  |.  81C1 C4000000 ADD ECX,0C4                              ; |
004026A4  |.  E8 8C450000   CALL Urlegal.00406C35                    ; \Urlegal.00406C35
004026A9  |.  8B4D 84       MOV ECX,DWORD PTR SS:[EBP-7C]
004026AC  |.  81C1 D0000000 ADD ECX,0D0
004026B2  |.  E8 72170000   CALL Urlegal.00403E29
004026B7  |.  6A 00         PUSH 0
004026B9  |.  6A 00         PUSH 0
004026BB  |.  68 24E24100   PUSH Urlegal.0041E224                    ;  thank you for registering!
004026C0  |.  E8 B1440100   CALL <JMP.&MFC42.#1200_?AfxMessageBox@@Y>
004026C5  |.  EB 0E         JMP SHORT Urlegal.004026D5
[COLOR="Red"]
004026C7  |>  6A 00         PUSH 0
004026C9  |.  6A 00         PUSH 0
004026CB  |.  68 40E24100   PUSH Urlegal.0041E240                    ;  name / code mis-match. try again.
004026D0  |.  E8 A1440100   CALL <JMP.&MFC42.#1200_?AfxMessageBox@@Y>
[/COLOR]
004026D5  |>  C645 FC 00    MOV BYTE PTR SS:[EBP-4],0
004026D9  |.  8D4D 88       LEA ECX,DWORD PTR SS:[EBP-78]
004026DC  |.  E8 DF420100   CALL <JMP.&MFC42.#800_??1CString@@QAE@XZ>
004026E1  |>  C745 FC FFFFF>MOV DWORD PTR SS:[EBP-4],-1
004026E8  |.  8D4D 8C       LEA ECX,DWORD PTR SS:[EBP-74]
004026EB  |.  E8 C0040000   CALL Urlegal.00402BB0
004026F0  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
004026F3  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
004026FA  |.  8BE5          MOV ESP,EBP
004026FC  |.  5D            POP EBP
004026FD  \.  C3            RETN
0040264F  |.  75 76         JNZ SHORT Urlegal.004026C7				;一个关键跳转
0040264F  |.  75 76         JNZ SHORT Urlegal.004026C7				;一个关键跳转
004025FE  |.  E8 09430100   CALL <JMP.&MFC42.#2514_?DoModal@CDialog@> ;显示一个模态对话框供用户进行注册
0040260C  |.  E8 7FEEFFFF   CALL Urlegal.00401490
00402651  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
00402654  |.  52            PUSH EDX                                                 ; /Arg2
00402655  |.  8D45 88       LEA EAX,DWORD PTR SS:[EBP-78]                            ; |
00402658  |.  50            PUSH EAX                                                 ; |Arg1
00402659  |.  E8 02060000   CALL Urlegal.00402C60                                    ; \Urlegal.00402C60
0012FB1C   0012FB38  |Arg1 = 0012FB38
0012FB20   0012FB9C  \Arg2 = 0012FB9C
……
0012FB38   003AE688  ASCII "9FF9FB892C7ED5CA1DB021CE61B34C76"
……
0012FB9C   003AE598  ASCII "112233445566778899"
……

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
比较厉害了,虽然不是很懂的。
2011-3-18 00:05
0
雪    币: 1163
活跃值: (137)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
3
条理清晰,文章写得不错,有时间把算法方面的学习也分享下吧
2011-3-18 11:00
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
4
谢谢支持。你可以多看看一些基础一点的视频(比如天草的教程,网上有的下载,三部合起来分快3G了),这样上手更快一些
2011-3-18 11:59
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
5
多写pencil支持,我会继续努力的,把学习中的一些心得拿出来和大家分享。
2011-3-18 12:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎么老早天草搞的东西  现在人还在研究 ????
2011-3-18 12:55
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
7
本人刚接触逆向,所以看了那个教程。虽然老,但是还是适合我这样的新手看的
2011-3-18 15:19
0
雪    币: 777
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
原理没变就行 。看那教程为了学思想啊。
2011-3-18 16:14
0
雪    币: 1163
活跃值: (137)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
9
知识不论新旧。
2011-3-18 18:44
0
雪    币: 678
活跃值: (101)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
10
学习过程才有前后,当然一些知识可能与现在的技术有落后的地方,但思想才是根本。
2011-3-18 19:26
0
游客
登录 | 注册 方可回帖
返回
//