老文章档案 · 2003 年

小小助手V2.01的破解过程

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-10 · 作者:任逍遥[BCG]、[FCG] 人气: · 出处:嬴政天下整理收藏)

小小助手V2.01的破解过程

作者:任逍遥[BCG]、[FCG]

软件名称:小小助手V2.01

软件大小: 594 KB

软件语言: 简体中文

软件类别: 国产软件 / 共享版 / 个人管理

应用平台: Win95/98/NT/2000

软件介绍:

本软件具有定时提醒、通讯录管理、日记管理三大功能,并设有密码保护,初始密码为:123。 1.定时提醒:可设置指定的日期、时间提醒您不要忘做某某事,如果该事没有做,还可设置间隔多少分钟重复提醒,并可选择WAV、MIDI、以及MP3格式的文件做为提醒时的音乐。因此,也可以把它作为定时点歌器。日期格式为:年-月-日 或 月-日,时间格式为:小时:分钟:秒 或 小时:分钟。要选择MP3作为提醒音乐,必须安装IE5.0及以上版本或媒体播放器。2.通讯录管理:设有家庭电话、办公电话、手机、E-mail、工作单位等多项内容,模糊查询功能,只需输入姓名、住址或电话前面的几个字或号码,即可查找出相匹配的记录。3.日记管理:可设置日记的背景颜色、字体格式,并可按日期进行查找。4.密码更改:按鼠标右键,选择密码更改,即可进行密码的更改。5.如果本软件不能正常运行,请将midas.dll复制到windows\system目录下。

下载地址:http://gd.skycn.net/down/little_assistant.zip

用FI检测到该软件加了壳,用Prodump将"little_assistant.exe"脱壳,另存为"dd.exe",运行"dd.exe",输入:

用户名:jack

注册码:7878

运行TRW2000,按CTRL+N激活调试窗口,输入:

bpx hmemcpy

g

按"确定"后,调试窗口被激活,输入:

bc *

pmodule

成功进入软件领域,按F10跟踪:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:004F2FD9(C)

|

:004F2FDB 00 BYTE 0

:004F2FDC 55 push ebp

:004F2FDD 8BEC mov ebp, esp

:004F2FDF 33C9 xor ecx, ecx

:004F2FE1 51 push ecx

:004F2FE2 51 push ecx

:004F2FE3 51 push ecx

:004F2FE4 51 push ecx

:004F2FE5 51 push ecx

:004F2FE6 51 push ecx

:004F2FE7 51 push ecx

:004F2FE8 53 push ebx

:004F2FE9 56 push esi

:004F2FEA 57 push edi

:004F2FEB 8945FC mov dword ptr [ebp-04], eax

:004F2FEE 33C0 xor eax, eax

:004F2FF0 55 push ebp

:004F2FF1 68B9314F00 push 004F31B9

:004F2FF6 64FF30 push dword ptr fs:[eax]

:004F2FF9 648920 mov dword ptr fs:[eax], esp

:004F2FFC 8D45F4 lea eax, dword ptr [ebp-0C]

:004F2FFF E8340DF1FF call 00403D38

:004F3004 8D55F0 lea edx, dword ptr [ebp-10]

:004F3007 8B45FC mov eax, dword ptr [ebp-04]

:004F300A 8B8004050000 mov eax, dword ptr [eax+00000504]

:004F3010 E8A7F7F3FF call 004327BC

:004F3015 837DF000 cmp dword ptr [ebp-10], 00000000

//用户名不能为空

:004F3019 0F8458010000 je 004F3177

//等于0就跳走

:004F301F 8D55F8 lea edx, dword ptr [ebp-08]

:004F3022 8B45FC mov eax, dword ptr [ebp-04]

:004F3025 8B8004050000 mov eax, dword ptr [eax+00000504]

:004F302B E88CF7F3FF call 004327BC

:004F3030 8B45F8 mov eax, dword ptr [ebp-08]

//读取用户名长度

:004F3033 E8800FF1FF call 00403FB8

:004F3038 8BF0 mov esi, eax

:004F303A 85F6 test esi, esi

//检查长度是否为0

:004F303C 7E2A jle 004F3068

//小于或等于0就跳走

*******************************开始计算注册码***************************

:004F303E BF01000000 mov edi, 00000001

//赋值edi=1

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:004F3066(C)

|

:004F3043 8B45F8 mov eax, dword ptr [ebp-08]

//读取用户名长度

:004F3046 33DB xor ebx, ebx

//清0

:004F3048 8A5C38FF mov bl, byte ptr [eax+edi-01]

//读取第一个字符的10进制ASCII码,并将结果赋值给ebx

:004F304C 83C37B add ebx, 0000007B

//将ebx+123

:004F304F 8D55EC lea edx, dword ptr [ebp-14]

:004F3052 8BC3 mov eax, ebx

//将ebx赋值给eax

:004F3054 E88364F1FF call 004094DC

:004F3059 8B55EC mov edx, dword ptr [ebp-14]

:004F305C 8D45F4 lea eax, dword ptr [ebp-0C]

:004F305F E85C0FF1FF call 00403FC0

//这个CALL是对用户名中的中文名进行处理,具体就是:如果ASCII码+123< 0,就将edi-1

//(重新读取该字符的ASCII码,且第一次读取的是高位ASCII码,第二次的是低位ASCII码)

//实现代码是:HighAscii=Int((65536 + bl) / 256)

//LowAscii=(65536 + bl) Mod 256

:004F3064 47 inc edi

//edi+1

:004F3065 4E dec esi

//esi-1

:004F3066 75DB jne 004F3043

//循环读取ASCII码

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:004F303C(C)

|

:004F3068 8B45F4 mov eax, dword ptr [ebp-0C]

:004F306B E8480FF1FF call 00403FB8

:004F3070 83F80A cmp eax, 0000000A

//比较eax的长度是否为10

:004F3073 7E26 jle 004F309B

//小于或等于10则跳走,直接与输入的注册码比较;如果大于就进入下面的注册码处理程序

*************************读取eax前10位数字******************************

:004F3075 8D45E8 lea eax, dword ptr [ebp-18]

:004F3078 50 push eax

:004F3079 B90A000000 mov ecx, 0000000A

:004F307E BA01000000 mov edx, 00000001

:004F3083 8B45F4 mov eax, dword ptr [ebp-0C]

:004F3086 E83511F1FF call 004041C0

:004F308B 8B55E8 mov edx, dword ptr [ebp-18]

:004F308E 8D45F4 lea eax, dword ptr [ebp-0C]

**************************将上面所得的10位数字&121**********************

* Possible StringData Ref from Code Obj ->"121"

|

:004F3091 B9D0314F00 mov ecx, 004F31D0

:004F3096 E8690FF1FF call 00404004

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:004F3073(C)

|

:004F309B 8D55E4 lea edx, dword ptr [ebp-1C]

:004F309E 8B45FC mov eax, dword ptr [ebp-04]

:004F30A1 8B8008050000 mov eax, dword ptr [eax+00000508]

:004F30A7 E810F7F3FF call 004327BC

:004F30AC 8B55E4 mov edx, dword ptr [ebp-1C]

//错误的注册码

:004F30AF 8B45F4 mov eax, dword ptr [ebp-0C]

//正确的注册码

:004F30B2 E81110F1FF call 004040C8

//比较

:004F30B7 0F85AE000000 jne 004F316B

//不等就跳走

OK,终于获得了正确的注册码:2292202222121。输入,按"确定",呵呵,"您已经注册,感谢使用无超工作室的产品"。

VB注册机(可以支持中文名)

Private Sub Command1_Click()

Dim a, i As Long

Dim b, c, d, e, f

a = Len(Text1.Text)

If a <= 0 Then GoTo Err1

Label3.Caption = ""

Command2.Enabled = True

For b = 1 To a

c = Mid$(Text1.Text, b, 1)

f = Asc(c)

If f < 0 Then

d = (Int((65536 + f) / 256) + 123) & (((65536 + f) Mod 256) + 123)

Else

d = f + 123

End If

e = e & d

Next b

i = Len(e)

If i <= 10 Then GoTo Err2

Text2.Text = Mid$(e, 1, 10) & "121"

Exit Sub

Err1:

Label3.Caption = "请输入用户名!"

Exit Sub

Err2:

Text2.Text = ""

Text2.Text = e

End Sub

Private Sub Command2_Click()

Clipboard.Clear

Clipboard.SetText (Text2.Text)

Command2.Enabled = False

End Sub

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

相关文章:

·ASProtect的加密算法初步分析

·MD5算法研究

·Active Ebook Compiler的注册算法

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

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

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

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

·加密算法之RSA算法

·加密算法之DES算法

·加密算法之ElGamal算法

相关软件:

·胜新通用人事工资管理系统 V5.01注册码算法

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

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

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

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

·共享软件加密算法库 2.5

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

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

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

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

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