爆破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数据模型工具以图形化 ...
随机推荐
- 5. Longest Palindromic Substring -- 最长回文字串
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- uva 11624(bfs)
11624 - Fire! Time limit: 1.000 seconds Joe works in a maze. Unfortunately, portions of the maze hav ...
- VS输入输出基本操作以及数据类型和类型转换
(一) C#项目的组成结构 项目结构 .config ---配置文件(存放配置参数文件) .csproj ---项目文件(管理文件项) .sln ---解决方案文件(管理项目) .cs - ...
- js——页面回到顶部
很久都没有去慕课网学习学习了,刚恰好就看见了一个用的比较多的小例子——页面回到顶部,记得之前自己也是在初学web时,被这个坑了一回,因此今天特地拿来分享分享…… <!DOCTYPE html&g ...
- CSS 框模型——规定了元素框处理元素内容、内边距、边框和外边距的方式
转自:http://www.w3school.com.cn/css/css_boxmodel.asp 要知道在父元素:float, rel, abs位置情况下,box模型的变换情况,请见:http:/ ...
- 读取DBF文件的部分代码
private void BtnOpenInitial_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDi ...
- ASP.NET MVC统一异常处理
前言: 今早看了篇文章:求知成瘾,却无作品 的思考:很有感触,发现原来自己也是这样,对每样东西都抱有很大的兴趣或者希望自己去学,一年后发现原来自己什么都是皮毛什么都不精!最终发现真正的大牛都是在某一个 ...
- BroadcastReceiver的简介
BroadcastReceiver本质上属于一个监听器,因此实现BroadcastReceiver的方法只要重写BroadcastReceiver的onReceive(Context context ...
- No suitable driver found for jdbc:mysql://localhost/dbname
把mysql-connector-java的jar包放入jdk/jre/lib/ext文件下
- hdu 4618 Palindrome Sub-Array
http://acm.hdu.edu.cn/showproblem.php?pid=4618 直接DP+记忆化 虽然时间复杂度看起来是300^4 但实际执行起来要远远小于这个值 所有可以水过 代码: ...