现在G海注册需要邀请码了 特发一个破解的文章(极其复杂)

社区服务
高级搜索
猴岛论坛DNF地下城与勇士现在G海注册需要邀请码了 特发一个破解的文章(极其复杂)
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
6个回复

现在G海注册需要邀请码了 特发一个破解的文章(极其复杂)

楼层直达
feng1704

ZxID:1660086

等级: 列兵
举报 只看楼主 使用道具 楼主   发表于: 2008-09-12 0
【破解工具】OllyDBG v1.10
【破解平台】Windows XP Pro SP2
【软件名称】外挂海万能模块
【软件大小】
【原版下载】
【保护方式】
【软件简介】
一款可以制作外挂的但是又不仅仅只能用来制作外挂的易语言永久免费模块

【破解声明】逆向研究仅供分析
------------------------------------------------------------------------
【破解过程】
我们在易语言中可以很容易的看出到该模块的信息,这是一款于外挂作坊同类但是功能要繁杂很多的永久免费模块。今
天,我就分析一下该模块的内附的“注册码验证”函数如何破解!

模块信息:
        模块名称:外挂海万能模块
        作者:小烦*烦者不凡
        版本:1.5

        永久免费模块-让易语言全民化
        打造超强功能,成就模块经典!

首先,我们写一个简单的例程检验来检验一下该模块的强度。见附带的 注册测试.e。请注意,在该例程中用以验证的核
心算法是:注册码验证 (编辑框2.内容, , “334455”, 编辑框1.内容)。 使用 易语言 v4.5 PYG破解版 编译后在
OllyDBG中载入。

我们在用户名中输入“王猛”,并点击“验证”按钮开始。CrackME将弹出错误对话框,告诉我们密码错误。在OD中按
F12接着按ALT+F9,点击错误提示框的“确定”按钮。程序停在了:

100691A6      5F              POP    EDI                                ; 0015F859

这句上边5行代码是一个完整的 MessageBoxA 调用,这些代码处于易语言核心支持库中。这个MessageBoxA 调用产生了
我们刚才看到的错误提示对话框。我们接着按Ctrl+F9 3次,返回到了主程序领空。现在停于:

00403DCD      C3              RETN

这里便是E语言真实的流程,解密易语言经常性下断后要在库里转一转才能找到实际的易语言流程。我们在这里向上找代
码触发错误的流程。

00403D94      68 04000080      PUSH    80000004
00403D99      6A 00            PUSH    0
00403D9B      68 53314000      PUSH    403153
00403DA0      68 01030080      PUSH    80000301
00403DA5      6A 00            PUSH    0
00403DA7      68 00000000      PUSH    0
00403DAC      68 04000080      PUSH    80000004
00403DB1      6A 00            PUSH    0
00403DB3      68 5C314000      PUSH    40315C
00403DB8      68 03000000      PUSH    3
00403DBD      BB 00030000      MOV    EBX, 300
00403DC2      E8 5F520000      CALL    00409026                            ; 这里调用库函数:信息框();
00403DC7      83C4 28          ADD    ESP, 28                            ; 来显示出错信息。
00403DCA      8BE5            MOV    ESP, EBP
00403DCC      5D              POP    EBP
00403DCD      C3              RETN

既然我们已经知道了错误提示是 00403D94 弹出来的,向上顺藤摸瓜找到谁调用了 00403D94 就是了。没走几步,我们
便可以发现 00403D53 跳向了注册失败提示。

00403D46      53              PUSH    EBX
00403D47      E8 E0520000      CALL    0040902C                     
00403D4C      83C4 04          ADD    ESP, 4                           
00403D4F      837D E8 01      CMP    DWORD PTR SS:[EBP 18], 1
00403D53      0F85 3B000000    JNZ    00403D94                            ; 跳向注册失败提示。

在 00403D53 上边有一个CMP比较指令,还是一句CALL 0040902C,这段代码就是关键代码,0040902C便是重要的注册验
证CALL。我们接着再向上找。在 00403CEF 我们看到了这样的代码:

00403CEF      B8 30314000      MOV    EAX, 403130                        ; ASCII "334455"


334455 是我刚才设置的加密字串,郁闷吧!知道了加密字串根据这个模块的函数手册,直接做注册机都可以了。我们把
这里当作问题一!我们接着向上在 00403CB5 下断点,输入用户名密码开始调试。

00403CB5      6A FF            PUSH    -1
00403CB7      6A 08            PUSH    8
00403CB9      68 6B040116      PUSH    1601046B
00403CBE      68 01000152      PUSH    52010001
00403CC3      E8 70530000      CALL    00409038                            ; 读取注册码
00403CC8      83C4 10          ADD    ESP, 10
00403CCB      8945 FC          MOV    DWORD PTR SS:[EBP 4], EAX
00403CCE      6A FF            PUSH    -1
00403CD0      6A 08            PUSH    8
00403CD2      68 6A040116      PUSH    1601046A
00403CD7      68 01000152      PUSH    52010001
00403CDC      E8 57530000      CALL    00409038                            ; 读取用户名
00403CE1      83C4 10          ADD    ESP, 10
00403CE4      8945 F8          MOV    DWORD PTR SS:[EBP 8], EAX
00403CE7      6A 01            PUSH    1
00403CE9      8D45 F8          LEA    EAX, DWORD PTR SS:[EBP 8]
00403CEC      50              PUSH    EAX
00403CED      6A 01            PUSH    1
00403CEF      B8 30314000      MOV    EAX, 403130                        ; 读取加密字符串 334455
00403CF4      8945 F4          MOV    DWORD PTR SS:[EBP C], EAX
00403CF7      8D45 F4          LEA    EAX, DWORD PTR SS:[EBP C]
00403CFA      50              PUSH    EAX
00403CFB      C745 EC 00000000 MOV    DWORD PTR SS:[EBP 14], 0
00403D02      C745 F0 00000000 MOV    DWORD PTR SS:[EBP 10], 0
00403D09      6A 00            PUSH    0
00403D0B      FF75 F0          PUSH    DWORD PTR SS:[EBP 10]
00403D0E      FF75 EC          PUSH    DWORD PTR SS:[EBP 14]
00403D11      6A 01            PUSH    1
00403D13      8D45 FC          LEA    EAX, DWORD PTR SS:[EBP 4]
00403D16      50              PUSH    EAX
00403D17      E8 C0010000      CALL    00403EDC                            ; F7进去 注册码计算



一步一步跟踪,到了0040407A这步大家注意看看EAX寄存器:


0040406B      6A 01            PUSH    1
0040406D      FF75 24          PUSH    DWORD PTR SS:[EBP+24]
00404070      6A 01            PUSH    1
00404072      FF75 1C          PUSH    DWORD PTR SS:[EBP+1C]
00404075      E8 7F050000      CALL    004045F9                            ; 真实注册码
0040407A      8945 F4          MOV    DWORD PTR SS:[EBP C], EAX          ; 真码进入EAX

晃荡,我摔到了。这个模块带的注册码验证功能是个明码验证!!!!我们把这个当作问题二。大家可以再试试不输入
注册码的情况下会怎么样?更严重,在主流程中就可以看到明码的注册码。

现在我们发现三个问题,希望作者有空闲的时候可以将注册模块这部分加强加强,避免以上我们发现的三个问题。完毕


附录一:解决“问题一”

问题一提到的加密字符串显示的问题可以通过一个代码编写技巧来解决。首先声明一个文本型变量,例如 混淆,接着在
函数中使用下面的写法:(见 隐藏加密字符串.e)

注册码验证 (编辑框2.内容, , 混淆, 编辑框1.内容)

再反汇编后得到的代码变成了下面的样子,这样就达到了在OD中隐藏加密字符串的目的!

00406291      6A 01            PUSH    1
00406293      68 4C219A00      PUSH    9A214C
00406298      C745 F0 00000000 MOV    DWORD PTR SS:[EBP 10], 0
0040629F      C745 F4 00000000 MOV    DWORD PTR SS:[EBP C], 0
004062A6      6A 00            PUSH    0
004062A8      FF75 F4          PUSH    DWORD PTR SS:[EBP C]
004062AB      FF75 F0          PUSH    DWORD PTR SS:[EBP 10]
004062AE      6A 01            PUSH    1
004062B0      8D45 FC          LEA    EAX, DWORD PTR SS:[EBP 4]

------------------------------------------------------------------------
【破解总结】
现在我们对外挂海万能模块 软件注册 部分有了一个大体的概念,了解了该模块的缺点和避免缺点的方法。该模块提供的
软件注册功能在现阶段并不实用,因为我们可以通过逆向的手法拿到加密字符串,再用这个模块便写出软件注册机。

------------------------------------------------------------------------


说实话 我看了 是看不明白 希望有高人能明白
420白依锐

ZxID:1674891

等级: 下士
举报 只看该作者 沙发   发表于: 2008-09-12 0
顶你下,我电脑小白

a6136674

ZxID:1574586

等级: 列兵
举报 只看该作者 板凳   发表于: 2008-09-12 0
估计一般人看不明白能看明白的 还有去那弄外挂啊 咱们这里就有!
123魔兽星际 天才的自我
chujinlong

ZxID:1720670

等级: 下士
举报 只看该作者 地板   发表于: 2008-09-12 0
dddddddddddddddddddddddddddddddddd
terryhoho

ZxID:1688667

等级: 新兵
I LOVE WWE

举报 只看该作者 4楼  发表于: 2008-09-12 0
这东西直接不懂,等高手解答了
asdf8546

ZxID:1545069

等级: 上等兵
举报 只看该作者 5楼  发表于: 2008-09-12 0
111111111111111111111
joewen

ZxID:1685394

等级: 少校
高调升级,D调用挂
举报 只看该作者 6楼  发表于: 2008-09-12 0
     
« 返回列表
发帖 回复