破解 abexcrackme2

系统 : Windows xp

程序 : abexcrackme2

程序下载地址 :http://pan.baidu.com/s/1qXhyt8C

要求 : 注册机编写

使用工具 : OD

可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“abex‘ #2的算法分析(VB简单)”。

  程序是用VB语言编写,所以可以参考下这篇文章:http://www.cnblogs.com/bbdxf/p/3793545.html,大部分反汇编出来的函数名都可以在其中查到。

  话不多说,我们采用OD载入程序,并利用超级字串参考插件查找宽字符串“yep, this key is right!”,并定位调用位置。向上搜索,定位关键代码:

00403191   .  8B1D 4C104000 mov     ebx, dword ptr [<&MSVBVM60.#632>>;  MSVBVM60.rtcMidCharVar
00403197   >  85C0          test    eax, eax                         ;  eax为0则结束循环
00403199   .  0F84 06010000 je      004032A5
0040319F   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
004031A5   .  8D45 DC       lea     eax, dword ptr [ebp-24]
004031A8   .  52            push    edx
004031A9   .  50            push    eax
004031AA   .  C785 6CFFFFFF>mov     dword ptr [ebp-94], 1
004031B4   .  89BD 64FFFFFF mov     dword ptr [ebp-9C], edi
004031BA   .  FF15 A8104000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
004031C0   .  8D4D 8C       lea     ecx, dword ptr [ebp-74]
004031C3   .  50            push    eax
004031C4   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
004031CA   .  51            push    ecx
004031CB   .  52            push    edx
004031CC   .  FFD3          call    ebx
004031CE   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
004031D4   .  8D4D AC       lea     ecx, dword ptr [ebp-54]
004031D7   .  FFD6          call    esi
004031D9   .  8D8D 64FFFFFF lea     ecx, dword ptr [ebp-9C]
004031DF   .  FF15 0C104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVar
004031E5   .  8D45 AC       lea     eax, dword ptr [ebp-54]
004031E8   .  8D8D 78FFFFFF lea     ecx, dword ptr [ebp-88]          ;  ↓从字符串特点位置上获取其值
004031EE   .  50            push    eax                              ; /String8
004031EF   .  51            push    ecx                              ; |ARG2
004031F0   .  FF15 80104000 call    dword ptr [<&MSVBVM60.__vbaStrVa>; \__vbaStrVarVal
004031F6   .  50            push    eax                              ; /String
004031F7   .  FF15 1C104000 call    dword ptr [<&MSVBVM60.#516>]     ; \rtcAnsiValueBstr
004031FD   .  8D95 24FFFFFF lea     edx, dword ptr [ebp-DC]          ;  ↑传回字符码
00403203   .  8D4D AC       lea     ecx, dword ptr [ebp-54]
00403206   .  66:8985 2CFFF>mov     word ptr [ebp-D4], ax            ;  保存字符码
0040320D   .  89BD 24FFFFFF mov     dword ptr [ebp-DC], edi
00403213   .  FFD6          call    esi
00403215   .  8D8D 78FFFFFF lea     ecx, dword ptr [ebp-88]          ;  ↓释放出字符串所占的内存
0040321B   .  FF15 CC104000 call    dword ptr [<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStr
00403221   .  8D55 AC       lea     edx, dword ptr [ebp-54]
00403224   .  8D85 24FFFFFF lea     eax, dword ptr [ebp-DC]
0040322A   .  52            push    edx                              ; /var18
0040322B   .  8D8D 64FFFFFF lea     ecx, dword ptr [ebp-9C]          ; |
00403231   .  50            push    eax                              ; |var28
00403232   .  51            push    ecx                              ; |saveto8
00403233   .  C785 2CFFFFFF>mov     dword ptr [ebp-D4], 64           ; |
0040323D   .  89BD 24FFFFFF mov     dword ptr [ebp-DC], edi          ; |
00403243   .  FF15 AC104000 call    dword ptr [<&MSVBVM60.__vbaVarAd>; \__vbaVarAdd
00403249   .  8BD0          mov     edx, eax
0040324B   .  8D4D AC       lea     ecx, dword ptr [ebp-54]
0040324E   .  FFD6          call    esi
00403250   .  8D55 AC       lea     edx, dword ptr [ebp-54]
00403253   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00403259   .  52            push    edx
0040325A   .  50            push    eax
0040325B   .  FF15 94104000 call    dword ptr [<&MSVBVM60.#573>]     ;  MSVBVM60.rtcHexVarFromVar
00403261   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
00403267   .  8D4D AC       lea     ecx, dword ptr [ebp-54]
0040326A   .  FFD6          call    esi
0040326C   .  8D4D BC       lea     ecx, dword ptr [ebp-44]
0040326F   .  8D55 AC       lea     edx, dword ptr [ebp-54]
00403272   .  51            push    ecx
00403273   .  8D85 64FFFFFF lea     eax, dword ptr [ebp-9C]
00403279   .  52            push    edx
0040327A   .  50            push    eax
0040327B   .  FF15 84104000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat
00403281   .  8BD0          mov     edx, eax
00403283   .  8D4D BC       lea     ecx, dword ptr [ebp-44]
00403286   .  FFD6          call    esi
00403288   .  8D8D BCFEFFFF lea     ecx, dword ptr [ebp-144]
0040328E   .  8D95 CCFEFFFF lea     edx, dword ptr [ebp-134]
00403294   .  51            push    ecx                              ; /TMPend8
00403295   .  8D45 DC       lea     eax, dword ptr [ebp-24]          ; |
00403298   .  52            push    edx                              ; |TMPstep8
00403299   .  50            push    eax                              ; |Counter8
0040329A   .  FF15 C0104000 call    dword ptr [<&MSVBVM60.__vbaVarFo>; \__vbaVarForNext
004032A0   .^ E9 F2FEFFFF   jmp     00403197
004032A5   >  8B45 08       mov     eax, dword ptr [ebp+8]
004032A8   .  50            push    eax
004032A9   .  8B08          mov     ecx, dword ptr [eax]
004032AB   .  FF91 04030000 call    dword ptr [ecx+304]
004032B1   .  8D95 74FFFFFF lea     edx, dword ptr [ebp-8C]
004032B7   .  50            push    eax
004032B8   .  52            push    edx
004032B9   .  FF15 38104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
004032BF   .  8BF8          mov     edi, eax
004032C1   .  8D8D 78FFFFFF lea     ecx, dword ptr [ebp-88]
004032C7   .  51            push    ecx
004032C8   .  57            push    edi
004032C9   .  8B07          mov     eax, dword ptr [edi]
004032CB   .  FF90 A0000000 call    dword ptr [eax+A0]
004032D1   .  85C0          test    eax, eax
004032D3   .  DBE2          fclex
004032D5   .  7D 12         jge     short 004032E9
004032D7   .  68 A0000000   push    0A0
004032DC   .  68 68234000   push    00402368
004032E1   .  57            push    edi
004032E2   .  50            push    eax
004032E3   .  FF15 24104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
004032E9   >  8B85 78FFFFFF mov     eax, dword ptr [ebp-88]
004032EF   .  BF 08000000   mov     edi, 8
004032F4   .  8D95 64FFFFFF lea     edx, dword ptr [ebp-9C]
004032FA   .  8D4D CC       lea     ecx, dword ptr [ebp-34]
004032FD   .  C785 78FFFFFF>mov     dword ptr [ebp-88], 0
00403307   .  8985 6CFFFFFF mov     dword ptr [ebp-94], eax
0040330D   .  89BD 64FFFFFF mov     dword ptr [ebp-9C], edi
00403313   .  FFD6          call    esi
00403315   .  8D8D 74FFFFFF lea     ecx, dword ptr [ebp-8C]
0040331B   .  FF15 C8104000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObj
00403321   .  8D55 BC       lea     edx, dword ptr [ebp-44]
00403324   .  8D45 CC       lea     eax, dword ptr [ebp-34]
00403327   .  52            push    edx                              ; /var18
00403328   .  50            push    eax                              ; |var28
00403329   .  FF15 58104000 call    dword ptr [<&MSVBVM60.__vbaVarTs>; \__vbaVarTstEq
0040332F   .  66:85C0       test    ax, ax                           ;  判断核心
00403332   .  0F84 D0000000 je      00403408

  以上,就是关键算法,其实注册算法相当简单:用户名字符+0x64即序列号。

  没有学过VB的朋友对于其相当奇葩的函数调用和变量引用会理解的相对很吃力。这个crackme发布于1999年,2007年它的破文在看雪论坛发表。而今天,2016年1月12日由我来破解这个程序。时隔17年,时代变了,技术不断更新,VB语言也渐渐没落了。也许有一天,VB会被彻底淘汰。但对于曾用VB做开发,或是曾逆向过VB程序的程序员来说,我们会将它存入一个不知名的文件夹,连同过去的记忆一并,深埋心底。

  好了,过去归于过去。现在的路还要好好的走。我们打开http://www.cnblogs.com/ZRBYYXDM/p/5115596.html中搭建的框架,并修改OnBtnDecrypt函数如下:

void CKengen_TemplateDlg::OnBtnDecrypt()
{
    // TODO: Add your control notification handler code here
    CString str;
    GetDlgItemText( IDC_EDIT_NAME,str );                    //获取用户名字串基本信息。
    int len = str.GetLength();

    if ( len >= 4 ){                                        //格式控制。
        CString PassWord = "";
        CString Temp = "";

        for ( int i = 0 ; i != 4 ; i++ ){
            Temp.Format( "%X",( str[i] + 0x64 ) );
            PassWord += Temp;
        }

        SetDlgItemText( IDC_EDIT_PASSWORD,PassWord );
    }
    else
        MessageBox( "用户名格式错误!" );
}

再在OnInitDialog中添加此代码修改标题:SetWindowText(_T("abexcrackme2_Keygen"));

运行效果:

时间: 2024-10-14 06:50:40

破解 abexcrackme2的相关文章

Windows7下安装与破解IntelliJ IDEA2017

注:本文来源于:csdn:西门吹雪叶孤城的<Windows7下安装与破解IntelliJ IDEA2017> IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具(git.svn.github等).JUnit.CVS整合.代码分析. 创新的GUI设计等方面的功能可以说是超常的.IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布

AMTEmu:一款adobe软件破解神器

Adobe系列软件对大家来说应该都不陌生,PS.AI.DW.PR.FL等等都是设计师和爱好者必备软件,软件据用试用期,超期了需要付费才能使用.如何适合国情的使用adobe软件呢,下面介绍一款简单实用的破解工具--AMTEmu. AMTEmu使用很简单,以AI cc 2015为例,成功安装AI后,打开AMTEmu,选择你要破解的版本,点击Install. 然后找到对应的amtlib.dll文件,点击打开.如果安装在默认的C盘,路径是:C:\Program Files\Adobe\Adobe Ill

Navicat 破解版的安装

因为电脑系统换掉,重装系统,重新配置了一下环境,安装Navicat,现记录一下过程,以便下次查询使用. 我们首先百度搜索一款navicat for mysql然后进行下载. 2 当我们下载完成之后首先进行数据包的解压,同时可以运行navicat for mysql程序.   选择同意,点击下一步   选择软件安装的目录,最好可以记住我们的安装路径.   安装,点击下一步.   软件正在安装,我们需要等待一点时间   安装软件完毕   如果这个时候打开软件,这个是还没有被激活的,只能使用一个月,除

RubyMine 2016.1 下载 附注册激活码 破解版方法

注册破解方法: 在要求输入注册的界面选择激活码,然后粘贴以下注册码: 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVz

一些Wifi破解姿势

wlan0:无线网卡设备 BSSID/AP's MAC:目标路由器的mac地址 Client's MAC:连接到此wifi客户端的mac地址 ESSID:这个无线的名字 CH[X] 扫描的信道号,因为airodump是跳频扫描的,会一直扫描13个信道.后面是你的扫描时间和你本地时间. BSSID:路由器MAC地址 PWR:网卡的信号水平,新号越好数值越大,但是例如第一个出现‘-1’说明该客户端不在我的监听范围内. Beacons:就是Beacon数据的速率 #Date:被捕获的数据分组数量 #/

无线安全专题_破解篇03--打造个人字典

上一篇讲解了如何通过Kali破解Pin码,今天继续无线安全专题破解篇的第三讲:打造个人字典.通过第一课,我们知道想要破解WPA加密,需要一个强大的字典.字典的强大直接决定了破解的可能性,废话不多说,咱们就学习一下怎么使用kali中的工具生打造个人字典.  一.crunsh工具介绍 今天主要说的是crunsh这款工具,专门用来生成字典. 命令参数: -b              #体积大小,比如-b 20mib 或者 -b 20kib -c              #密码个数(行数),比如80

StarUML 破解方法

在安装目录的:StarUML\www\license\node 找到LicenseManagerDomain.js 在 try 前面加上: return { name:"0xcb", product:"StartUML", licenseType:"vip", quantity:"hello word", licenseKey:"later equals never" }; 如图: 然后打开StarUML,

MapGIS6.7安装图文教程(完美破解)

mapgis安装比较简单,主要注意在安装的时候,先打开软件狗,然后再进行软件安装,一般就不会照成其他安装失败的现象,有时候安装之前没有打开软件狗也安装成功了,也有这情况,不过软件使用也需要软件狗的支持!MapGIS6.7安装图文教程(完美破解)工具/原料 MapGIS6.7安装包和软件狗 电脑(现在的电脑配置都可以安装) 方法/步骤 1 打开软件狗,注意防火墙,可能会阻止打开 MapGIS6.7安装图文教程(完美破解) 2 点击SETUP67.EXE,如图,进行mapgis安装 MapGIS6.

Navicat Premium 11.0.19中文破解版 安装

一.navicat-premium简介 它是一款可连接多种数据库的软件,具体参见官网介绍:http://www.navicat.com.cn/products/navicat-premium 二.下载 http://www.liangchan.net/liangchan/6005.html 在下载连接注意安装与自己电脑匹配的位数版本 三.安装与破解 根据下载地址提供的安装破解方法,非常简单: 1.上面的是默认的安装地址,具体需要覆盖的是你自己安装地址:2.如果你采用上面方式打开遇到问题,不要急,