简单算法分析——1toX 2.56
软件大小:约800K
下载地址:http://www.logipole.com
【软件简介】:1toX is a 32 bit software for Windows 9x, ME, 2000 and NT 4.x used to split big files or a huge set of files into several smaller files. 文件分割与合并工具。
【软件限制】:30天试用
【作者声明】:小弟初学Crack,只是感兴趣,没有其它目的。失误之处敬请各大侠赐教!
【破解工具】:TRW2000娃娃修改版、FI2.5、W32Dasm8.93黄金版
—————————————————————————————
【过 程】:
呵呵,从某张光盘里看见了这个家伙,想起xiA Qin大侠在《看雪论坛精华3》中曾追过1.63版的注册码,却没有分析算法。虽然2.56版本也挺旧了,但是不妨碍我练练手呀。OK,开工吧!
1toX.exe无壳,VC++6.0编写。反汇编。TRW伺候!
输入试炼信息
Name: fly
First Name: sky
Key: 13572468
CTR+D切入TRW,下万能断点BPX HMEMCPY。F5返回WINDOWS,点“OK”,拦下!
BD,暂停断点。PMODULE直达程序领空。我们来到425792处。
—————————————————————————————
:00415792 85C0 test eax, eax
====>我们来到这儿!
:00415794 755B jne 004157F1
…… ……省略…… ……
F10走,呵呵,很快的,我们就来到了核心!
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041589E(C)
|
:004158FB 8D442418 lea eax, dword ptr [esp+18]
====>D EAX=fly
:004158FF 8D4C246C lea ecx, dword ptr [esp+6C]
====>D ECX=sky
:00415903 50 push eax
* Possible StringData Ref from Data Obj ->"1toX"
====>注意此字符串!
:00415904 68F8834300 push 004383F8
====>D 4383F8=1toX
:00415909 51 push ecx
:0041590A 8D942410070000 lea edx, dword ptr [esp+00000710]
* Possible StringData Ref from Data Obj ->"%s%s%s"
|
:00415911 688C884300 push 0043888C
:00415916 52 push edx
:00415917 FFD5 call ebp
====>此CALL把sky、1toX、fly连接起来!
:00415919 8DBC2418070000 lea edi, dword ptr [esp+00000718]
====>D EDI=sky1toXfly
:00415920 83C9FF or ecx, FFFFFFFF
:00415923 33C0 xor eax, eax
:00415925 83C414 add esp, 00000014
:00415928 F2 repnz
:00415929 AE scasb
:0041592A F7D1 not ecx
:0041592C 2BF9 sub edi, ecx
:0041592E 8D9424EC020000 lea edx, dword ptr [esp+000002EC]
:00415935 8BC1 mov eax, ecx
:00415937 8BF7 mov esi, edi
:00415939 8BFA mov edi, edx
:0041593B C1E902 shr ecx, 02
:0041593E F3 repz
:0041593F A5 movsd
:00415940 8BC8 mov ecx, eax
:00415942 8D8424EC020000 lea eax, dword ptr [esp+000002EC]
:00415949 83E103 and ecx, 00000003
:0041594C F3 repz
:0041594D A4 movsb
:0041594E 8A8C24EC020000 mov cl, byte ptr [esp+000002EC]
:00415955 84C9 test cl, cl
:00415957 741F je 00415978
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
下面开始循环了!
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00415976(C)
|
:00415959 80385F cmp byte ptr [eax], 5F
:0041595C 7503 jne 00415961
:0041595E C60020 mov byte ptr [eax], 20
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041595C(C)
|
:00415961 0FBE08 movsx ecx, byte ptr [eax]
====>依次取sky1toXfly的HEX值
====>1、ECX=73
====>2、ECX=6B
====>3、ECX=79
…… ……省略…… ……
:00415964 334C2410 xor ecx, dword ptr [esp+10]
====>依次与[esp+10]异或!
请教一下[esp+10]的初始值是如何得出的?
====>1、ECX=73 XOR FFFFFFFF=FFFFFF8C
====>2、ECX=6B XOR ECA86542=ECA86529
====>3、ECX=79 XOR FFFFFFE7=FFFFFF9E
…… ……省略…… ……
:00415968 81F1CE9A5713 xor ecx, 13579ACE
====>上面得出的值依次与13579ACE异或!
====>1、ECX=FFFFFF8C XOR 13579ACE=ECA86542
====>2、ECX=ECA86529 XOR 13579ACE=FFFFFFE7
====>3、ECX=FFFFFF9E XOR 13579ACE=ECA86550
…… ……省略…… ……
:0041596E 40 inc eax
:0041596F 894C2410 mov dword ptr [esp+10], ecx
====>ECX依次入[esp+10]
====>循环最后ECX=FFFFFF9F
:00415973 803800 cmp byte ptr [eax], 00
:00415976 75E1 jne 00415959
====>没取完?继续循环!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00415957(C)
|
:00415978 8B442410 mov eax, dword ptr [esp+10]
====>FFFFFF9F入EAX
:0041597C 8D942414010000 lea edx, dword ptr [esp+00000114]
====>D EDX=13572468
:00415983 35F0BD6824 xor eax, 2468BDF0
====>EAX=FFFFFF9F XOR 2468BDF0=DB97426F
DB97426F的十进制3684123247就是我们的真码了!
:00415988 52 push edx
:00415989 A380EA4300 mov dword ptr [0043EA80], eax
====>DB97426F入[0043EA80]
:0041598E E8E4400100 call 00429A77
:00415993 8B0D80EA4300 mov ecx, dword ptr [0043EA80]
====>DB97426F入ECX
:00415999 83C404 add esp, 00000004
:0041599C 3BC1 cmp eax, ecx
====>真假码比较!
====>?EAX=13572468 试炼码!
====>?ECX=3684123247 真码!!
:0041599E 7455 je 004159F5
====>不跳则OVER!
* Reference To: USER32.MessageBoxA, Ord:01C3h
:004159D4 FF1590524300 Call dword ptr [00435290]
====>BAD BOY!
—————————————————————————————
【KeyMake之内存注册机】:
中断地址:41599C
中断次数:1
第一字节:3B
指令长度:2
寄存器方式:ECX
十进制
—————————————————————————————
【注册信息保存】:
程序文件夹下的 1toX.lic 中。
[ENREGISTREMENT]
licence=3684123247
first name=fly
last name=sky
—————————————————————————————
【整 理】:
Name: fly
First Name: sky
Key: 3684123247
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有1条评论>>