老文章档案 · 2003 年

1toX 2.56

天下资讯 · 破解文章 · 2003-06-15 · 作者:fly 人气: · 出处:嬴政天下整理收藏)

简单算法分析——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

(出处:嬴政天下整理收藏)

相关资讯:

·ASProtect的加密算法初步分析

·MD5算法研究

·Active Ebook Compiler的注册算法

·语音界面2.0算法分析及注册机源码!

·简单算法——小护士 V1.2

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·加密算法之RSA算法

·加密算法之DES算法

·加密算法之ElGamal算法

相关软件:

·胜新出纳-支票打印软件 V4.0X 的注册码算法

·胜新现代办公百宝箱 V5.01 的注册码算法

·胜新信函宝典-信封打印软件 V2.02 注册码的算法

·胜新通用企业计划管理系统的注册码算法

·共享软件加密算法库 V3.2

·操作系统内存分配银行家算法模拟系统 XP

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright ? 1998-2003 winzheng.com

All Rights Reserved.

特别感谢 蓝芒科技 提供下载站及论坛服务器

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史