爆破unabexcm5fl(已补上注册机)
系统 : Windows xp
程序 : unabexcm5fl
程序下载地址 :http://pan.baidu.com/s/1pJYaNUV
要求 : 爆破
使用工具 :OD
可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“菜鸟必看的破解文章(2)-追出软件注册码”。
看上去是个很小的程序所以直接OD载入,对GetDlgItemTextA下断并运行程序,返回用户领空后的汇编指令如下:
0040106C |> \6A push ; /Count = 25 (37.)
0040106E |. push ; |Buffer = unabexcm.00402324
|. 6A push ; |ControlID = 68 (104.)
|. FF75 push dword ptr [ebp+] ; |hWnd
|. E8 F4000000 call <jmp.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA
0040107D |. 6A push ; /pFileSystemNameSize = NULL
0040107F |. 6A push ; |pFileSystemNameBuffer = NULL
|. C8204000 push 004020C8 ; |pFileSystemFlags = unabexcm.004020C8
|. push ; |pMaxFilenameLength = unabexcm.00402190
0040108B |. push ; |pVolumeSerialNumber = unabexcm.00402194
|. 6A push ; |MaxVolumeNameSize = 32 (50.)
|. 5C224000 push 0040225C ; |VolumeNameBuffer = unabexcm.0040225C
|. 6A push ; |RootPathName = NULL
|. E8 B5000000 call <jmp.&KERNEL32.GetVolumeInformat>; \GetVolumeInformationA
0040109E |. F3234000 push 004023F3 ; /StringToAdd = "4562-ABEX"
004010A3 |. 5C224000 push 0040225C ; |ConcatString = "曙?
004010A8 |. E8 call <jmp.&KERNEL32.lstrcatA> ; \lstrcatA
004010AD |. B2 mov dl, ; ↑↑GetVolumeInformation获取磁盘信息
004010AF |> 5C224000>/add dword ptr [40225C], ; 存放卷标的内存每个字节+1
004010B6 |. 5D224000>|add dword ptr [40225D],
004010BD |. 5E224000>|add dword ptr [40225E],
004010C4 |. 5F224000>|add dword ptr [40225F],
004010CB |. FECA |dec dl ; 循环两次
004010CD |.^ E0 \jnz short 004010AF ; ↓‘L2C-5781’+累加处理之后的卷标名就是序列号啦。
004010CF |. FD234000 push 004023FD ; /StringToAdd = "L2C-5781"
004010D4 |. push ; |ConcatString = "L2C-5781曙?
004010D9 |. E8 call <jmp.&KERNEL32.lstrcatA> ; \lstrcatA
004010DE |. 5C224000 push 0040225C ; /StringToAdd = "曙?
004010E3 |. push ; |ConcatString = "L2C-5781曙?
004010E8 |. E8 call <jmp.&KERNEL32.lstrcatA> ; \lstrcatA
004010ED |. push ; /String2 = "fewagweag"
004010F2 |. push ; |String1 = "L2C-5781曙?
004010F7 |. E8 call <jmp.&KERNEL32.lstrcmpiA> ; \lstrcmpiA
004010FC |. 83F8 cmp eax,
004010FF |. je short
|. 6A push ; /Style = MB_OK|MB_APPLMODAL
|. push ; |Title = "Error!"
|. 3B244000 push 0040243B ; |Text = "The serial you entered is not correct!"
0040110D |. FF75 push dword ptr [ebp+] ; |hOwner
|. E8 call <jmp.&USER32.MessageBoxA> ; \MessageBoxA
|. EB jmp short 0040112D
|> 6A push ; /Style = MB_OK|MB_APPLMODAL
|. push ; |Title = "Well Done!"
0040111E |. push ; |Text = "Yep, you entered a correct serial!"
|. FF75 push dword ptr [ebp+] ; |hOwner
|. E8 call <jmp.&USER32.MessageBoxA> ; \MessageBoxA
0040112B |. EB jmp short 0040112D
0040112D |$ 6A push ; /Result = 0
0040112F |. FF75 push dword ptr [ebp+] ; |hWnd
|. E8 call <jmp.&USER32.EndDialog> ; \EndDialog
|. C9 leave
\. C2 retn
这里有个陌生的函数调用,其定义如下:
BOOL WINAPI GetVolumeInformation(
_In_opt_ LPCTSTR lpRootPathName,
_Out_opt_ LPTSTR lpVolumeNameBuffer,
_In_ DWORD nVolumeNameSize,
_Out_opt_ LPDWORD lpVolumeSerialNumber,
_Out_opt_ LPDWORD lpMaximumComponentLength,
_Out_opt_ LPDWORD lpFileSystemFlags,
_Out_opt_ LPTSTR lpFileSystemNameBuffer,
_In_ DWORD nFileSystemNameSize
);
这里主要就是获取程序所在磁盘的信息,比如本次在D盘下运行,就获取了卷标“软件”这个字串,再对字串做一些操作然后连接一个固定字串就是正确的序列号了。
这里,我们直接将4010FF处的指令修改为JNE,然后选择保存,这样爆破就完成了:

-------------------------------------------------------------------------------------------------------------------
后记:之前存放程序的盘卷标名是中文,所以该cm连接字符时出了问题,这次写出了注册机也是专门把卷标名“软件”改成了“SoftWarre”配合。
算法很简单,所以直接用c写一个无界面的注册机:
#include <windows.h>
#include <stdio.h> int main(int argc,char **argv)
{
DWORD VolumeSerialNumber;
char VolumeName[];
GetVolumeInformation( NULL,VolumeName,,&VolumeSerialNumber,NULL,NULL,NULL,); printf( "本程序所在盘的卷标:%s\n ",VolumeName);
VolumeName[] += ;
VolumeName[] += ;
VolumeName[] += ;
VolumeName[] += ; printf( "经过累加之后的卷标:%s\n ",VolumeName); char* Prefix = "L2C-5781";
char* Suffix = "4562-ABEX";
printf( "生成的序列号:%s%s%s\n ",Prefix,VolumeName,Suffix); getchar(); return ;
}
运行效果:

爆破unabexcm5fl(已补上注册机)的更多相关文章
- 爆破vcrkme01(已补上注册机)
系统 : Windows xp 程序 : vcrkme01 程序下载地址 :http://pan.baidu.com/s/1mh1n33y 要求 : 爆破 使用工具 :OD 可在“PEDIY Crac ...
- Bxm做的第一个CrackMe(已补上注册机)
系统 : Windows xp 程序 : Bxm_CrackMe1 程序下载地址 :http://pan.baidu.com/s/1pK0a0xt 要求 : 分析算法 使用工具 :OD 可在看雪论坛中 ...
- WSMBT Modbus & WSMBS Modbus 控件及注册机
先上注册机 点击下载 How to add the WSMBT control to the toolbox: On the Tools menu, click Choose Toolbox Item ...
- 【转】破解Source Insight 3.5.0072过程 附:安装软件+注册机
转载地址:http://blog.csdn.net/qs_hud/article/details/8884867 注册机及软件下载地址:http://download.csdn.net/detail/ ...
- 菜鸟 学注册机编写之 Android app
0x00前言 环境及工具: 手机 Nexus 4(己root) 系统版本 Android 5.01 工具 AndroidKiller_V1.2 关于Android平台app注册机的编 ...
- PostSharp 4.0注册机实现过程
PostSharp是基于.NET平台设计的比较强调易学易用的AOP框架. 什么是AOP? http://wayfarer.cnblogs.com/articles/241024.html 新版的已失效 ...
- RockWare RockWorks的Ollydbg调试过程及注册机(破解)思路
最近拿到了RockWorks15的安装包,可惜没有破解,试用也只能用14天.用PEiD工具察看了一下,Delphi编写的程序,竟然没加壳.本想用OllyDBG调试进去爆破一下,不意发现注册码很简单,如 ...
- AutoCAD 2013官方简体中文破解版(32 / 64位),带激活码和注册机
AutoCAD 2014下载地址:http://ideapad.zol.com.cn/61/160_603697.html 安装及破解方法:(注册机下载在下方) 1.安装Autodesk AutoCA ...
- Navicat11全系列激活(注册机)
Navicat是一款数据库管理工具, 用于简化, 开发和管理MySQL, SQL Server, SQLite, Oracle 和 PostgreSQL 的数据库: Navicat数据模型工具以图形化 ...
随机推荐
- sql server中局部变量与全局变量的 申明与赋值(转)
来源:http://www.111cn.net/database/mssqlserver/36734.htm 例子:http://www.cnblogs.com/sunxi/p/4497493.htm ...
- SAP采购申请审批记录增强
业务需要,开发就搞.... EBAN中增强结构:CI_EBANDB ANAME 类型 UNAME 用户名 ADATE 类型 AEDAT DATS 更改日期 ATIME 类型 UZEIT TIMS 时间 ...
- 分享一个快速的Json(反)序列化开源项目 Jil
我们不缺少JSON的序列化库,但我们缺少一个性能非常好的库,这对于网站来说非常重要.今天我发现了Jil. 他是开源的代码: https://github.com/kevin-montrose/Jil ...
- 使用JQuery的Ajax调用SOAP-XML Web Services(Call SOAP-XML Web Services With jQuery Ajax)(译+摘录)
假设有一个基于.Net的Web Service,其名称为SaveProduct POST /ProductService.asmx HTTP/1.1 Host: localhost Content-T ...
- Oracle “dba_tables”介绍
DBA_TABLES describes all relational tables in the database. Its columns are the same as those in ALL ...
- mysql 忘记root密码修改方法
先将mysql安装bin目录(例如:c:xxx\xxx\mysql\bin 加入环境变量) 1.在命令行窗口下输入net stop mysql5 或 net stop mysql 2.开一个命令行窗 ...
- Java DES 加解密文件
import com.mchange.v2.io.DirectoryDescentUtils; import javax.crypto.Cipher;import javax.crypto.Ciphe ...
- ASP.NET文章目录导航
ASP.NET文章目录导航 ASP.NET-[读书笔记]-原创:ASP.Net状态管理读书笔记--思维导图 (2013-12-25 10:13) ASP.NET-[潜在危险]-从客户端中检测到有潜在危 ...
- mysql在一台服务器搭建主从
注:本环境事先执行rm -rf /usr/local/mysql 以方便实验. 1. 主与从,类似于A机器和B机器的连接,通过bin_log和rpel_log 进行数据连接 2. 如图所示: 3. ...
- spring mvc环境配置
spring mvc将所有的请求都经过一个servlet控制器-DispatcherServlet,这个servlet的工作就是将一个客户端的request请求分发给不同的springmvc控制器,既 ...