- UID
- 37030
注册时间2007-11-4
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】侠客工具盒V6.0(最新版)
【破文作者】Foeyes
【作者邮箱】
【更新时间】2007-12-?
【破解工具】OD,PEid,RSATOOL2
【破解平台】WinXP
【软件名称】侠客工具盒
【软件大小】1,750 KB
【原版下载】http://www.ancisoft.com
【保护方式】序列号
【软件简介】
电脑应用必备好帮手,能为您的计算机带来更强更多功能。
1、快捷文件夹访问 - 快速打开文件夹,内设软件自定义变量,自动锁定计算机硬盘、光驱、优盘位置
2、定时关机与闹钟提醒 - 可以在指定时间点或时间间隔后进行自动关机、重启、注销系统操作, 也可以在您设定的时间提醒您,让您后顾无忧
3、系统修改器 - 帮你轻松修改 Windows 注册表设置及其它系统设置,让你进一步操纵操作系统,扩展Windows系统功能,建立完全个性的应用界面,方便自己的日常操作和管理
。
4、Windows 窗口管理 - 显示、隐藏、关闭、退出您当前系统中任意窗口,让您自己来为窗口们当家作主
5、进程管理 - 显示所有运行的进程及其所在路径,可获取进程信息,模块信息,线程信息,保存所有进程列表,让您随心所欲地管理进程
6、系统锁定 - 热键锁定计算机,拒绝他人使用,更好的保护您电脑的使用安全
7、查看密码 - 查看系统中以“***”显示的密码的真正内容,支持网页中*符号密码的查看
8、壁纸变更 - 选择自己的壁纸集,每次开机自动更新桌面壁纸
9、资源管理器整合菜单 - 复制所选文件、文件夹的名称或完全路径名,大/小写化所选项名称等功能
10、常用软件的快捷运行 - 为自己经常运行的软件设置快捷菜单,并可一次运行全部设置项
11、老板键 - 热键快速 隐藏/显示 自己设定的窗口(支持多个),神不知鬼不觉
12、强力文件粉碎工具,可轻松地将您所指定的文件夹或文件内容彻底删除,无法恢复
13、开关机日志的记录与查看,让您轻松掌握电脑的使用情况
14、热键开/关系统声音,计时表,禁用/允许桌面,弹出/关闭光驱,快速清除文档记录、快速内存释放...
【破解声明】本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任
------------------------------------------------------------------------
【破解过程】peid检查 无壳,(窃喜)
od载入
VC++ SDK编写
输入试练码,点注册没有反应
bp GetWindowsTextA
断下向下翻
00401FE2 |. 56 push esi ; /Count => 80 (128.)
00401FE3 |. 8B35 A4724100 mov esi, dword ptr [<&USER32.G>; |USER32.GetDlgItem
00401FE9 |. 50 push eax ; |Buffer
00401FEA |. 68 14040000 push 414 ; |/ControlID = 414 (1044.)
00401FEF |. FF75 08 push dword ptr [ebp+8] ; ||hWnd
00401FF2 |. FFD6 call esi ; |\GetDlgItem
00401FF4 |. 8B1D A0724100 mov ebx, dword ptr [<&USER32.G>; |USER32.GetWindowTextA
00401FFA |. 50 push eax ; |hWnd
00401FFB |. FFD3 call ebx ; \GetWindowTextA
00401FFD |. 8D85 C0FEFFFF lea eax, dword ptr [ebp-140] ; 得到注册名
00402003 |. 68 00010000 push 100 ; /Count = 100 (256.)
00402008 |. 50 push eax ; |Buffer
00402009 |. 68 15040000 push 415 ; |/ControlID = 415 (1045.)
0040200E |. FF75 08 push dword ptr [ebp+8] ; ||hWnd
00402011 |. FFD6 call esi ; |\GetDlgItem
00402013 |. 50 push eax ; |hWnd
00402014 |. FFD3 call ebx ; \GetWindowTextA
00402016 |. 8D85 C0FEFFFF lea eax, dword ptr [ebp-140] ; 得到试练码
0040201C |. 50 push eax
0040201D |. 8D45 C0 lea eax, dword ptr [ebp-40]
00402020 |. 50 push eax
00402021 |. E8 C3000000 call 004020E9 ; 关键处理函数
00402026 |. 59 pop ecx
00402027 |. 83E0 01 and eax, 1
0040202A |. 59 pop ecx
0040202B |. 8B0D 641B4200 mov ecx, dword ptr [421B64]
00402031 |. C1E0 06 shl eax, 6
00402034 |. 83E1 BF and ecx, FFFFFFBF
00402037 |. 0BC1 or eax, ecx
00402039 |. A8 40 test al, 40
0040203B |. A3 641B4200 mov dword ptr [421B64], eax ; 这里处理后的一个标志码,不对则跳走
00402040 0F84 8E000000 je 004020D4
00402046 |. 8D45 C0 lea eax, dword ptr [ebp-40]
00402049 |. 50 push eax ; /String2
0040204A |. 68 90FA4100 push 0041FA90 ; |String1 = ToolBox.0041FA90
0040204F |. FF15 80714100 call dword ptr [<&KERNEL32.lstr>; \lstrcpyA
00402055 |. 33D2 xor edx, edx
00402057 |> 8A4415 C0 /mov al, byte ptr [ebp+edx-40]
0040205B |. 8D4C15 C0 |lea ecx, dword ptr [ebp+edx-4>
0040205F |. 84C0 |test al, al
00402061 |. 74 0A |je short 0040206D
00402063 |. FEC8 |dec al
00402065 |. 42 |inc edx
00402066 |. 83FA 40 |cmp edx, 40
00402069 |. 8801 |mov byte ptr [ecx], al
0040206B |.^ 7C EA \jl short 00402057 ; 用户名加密
0040206D |> 33D2 xor edx, edx
0040206F |> 8A8415 C0FEFF>/mov al, byte ptr [ebp+edx-140>
00402076 |. 8D8C15 C0FEFF>|lea ecx, dword ptr [ebp+edx-1>
0040207D |. 84C0 |test al, al
0040207F |. 74 0D |je short 0040208E
00402081 |. 2C 02 |sub al, 2
00402083 |. 42 |inc edx
00402084 |. 81FA 00010000 |cmp edx, 100
0040208A |. 8801 |mov byte ptr [ecx], al
0040208C |.^ 7C E1 \jl short 0040206F ; 注册码加密
0040208E |> 8B35 70714100 mov esi, dword ptr [<&KERNEL32>; kernel32.WritePrivateProfileStringA
00402094 |. 8D45 C0 lea eax, dword ptr [ebp-40]
00402097 |. 57 push edi ; /FileName
00402098 |. 50 push eax ; |String
00402099 |. BB 98924100 mov ebx, 00419298 ; |set
0040209E |. 68 E4924100 push 004192E4 ; |am
004020A3 |. 53 push ebx ; |Section => "Set"
004020A4 |. FFD6 call esi ; \WritePrivateProfileStringA
004020A6 |. 8D85 C0FEFFFF lea eax, dword ptr [ebp-140]
004020AC |. 57 push edi ; /FileName
004020AD |. 50 push eax ; |String
004020AE |. 68 E0924100 push 004192E0 ; |bm
004020B3 |. 53 push ebx ; |Section => "Set"
004020B4 |. FFD6 call esi ; \WritePrivateProfileStringA
004020B6 |. 6A 06 push 6 ; /FileAttributes = HIDDEN|SYSTEM
004020B8 |. 57 push edi ; |FileName
004020B9 |. FF15 6C714100 call dword ptr [<&KERNEL32.SetF>; \SetFileAttributesA
004020BF |. 6A 01 push 1
004020C1 |> FF75 08 push dword ptr [ebp+8] ; |hWnd
004020C4 |. FF15 98724100 call dword ptr [<&USER32.EndDia>; \EndDialog
可以看到得到注册信息后,进入关键处理函数,处理后正确就将注册信息简单加密存入一个ini文件,名字为ToolBox
经验证,软件重启后会进行同样的注册验证。下面进入处理函数
00402154 |. 895D FC mov dword ptr [ebp-4], ebx
00402157 |. 7E 1C jle short 00402175
00402159 |> 8B45 0C /mov eax, dword ptr [ebp+C]
0040215C |. 0FBE0407 |movsx eax, byte ptr [edi+eax]
00402160 |. 50 |push eax ;
00402161 |. E8 ED740000 |call 00409653 ;
00402166 |. 85C0 |test eax, eax
00402168 |. 59 |pop ecx
00402169 |. 0F84 8A000000 |je 004021F9 ;这里对注册码有一定限制
0040216F |. 47 |inc edi
00402170 |. 3B7D F8 |cmp edi, dword ptr [ebp-8]
00402173 |.^ 7C E4 \jl short 00402159
00402175 |> 395D F8 cmp dword ptr [ebp-8], ebx
00402178 |. 0F84 82000000 je 00402200
0040217E |. FF75 0C push dword ptr [ebp+C]
00402181 |. 56 push esi ; m大数-〉009B5050是地址
00402182 |. E8 D9090100 call 00412B60
00402187 |. 8B7D EC mov edi, dword ptr [ebp-14]
0040218A |. 68 F0924100 push 004192F0 ; n---
>9be815a0794c8d1fd2e51f5b6f1010bbf15f690e1fe0df0de760ea02c28b3ab6c399f9a2e81d0b6dff1396ebe963ec7a647fb9d9a335f852fed366be72fc4ef124aac0497869b5906bc5f496bbdd
3bd9
0040218F |. 57 push edi
00402190 |. E8 CB090100 call 00412B60
00402195 |. 68 E8924100 push 004192E8 ; d-->798199
0040219A |. FF75 F4 push dword ptr [ebp-C]
0040219D |. E8 BE090100 call 00412B60
004021A2 |. 57 push edi
004021A3 |. 56 push esi
004021A4 |. E8 47F70000 call 004118F0 ;compare(m,n)
004021A9 |. 83C4 20 add esp, 20
004021AC |. 83F8 FF cmp eax, -1
004021AF |. 75 48 jnz short 004021F9
004021B1 |. FF75 F0 push dword ptr [ebp-10]
004021B4 |. 57 push edi
004021B5 |. FF75 F4 push dword ptr [ebp-C]
004021B8 |. 56 push esi
004021B9 |. E8 22070100 call 004128E0 ; Miracl powmod--powmod(c,d,n,m)//
004021BE |. 8D85 ECFEFFFF lea eax, dword ptr [ebp-114]
004021C4 |. 53 push ebx
004021C5 |. 50 push eax ;
004021C6 |. FF75 F0 push dword ptr [ebp-10] ;
004021C9 |. 68 00010000 push 100
004021CE |. E8 0D010100 call 004122E0 ; big_to_bytes(256,c,A,0);
004021D3 |. 56 push esi
004021D4 |. E8 77F10000 call 00411350
004021D9 |. FF75 F0 push dword ptr [ebp-10]
004021DC |. E8 6FF10000 call 00411350
004021E1 |. 57 push edi
004021E2 |. E8 69F10000 call 00411350
004021E7 |. FF75 F4 push dword ptr [ebp-C]
004021EA |. E8 61F10000 call 00411350
004021EF |. 83C4 30 add esp, 30
004021F2 |. E8 79F10000 call 00411370
004021F7 |. EB 07 jmp short 00402200
004021F9 |> C745 FC 01000>mov dword ptr [ebp-4], 1
00402200 |> 8D85 ECFEFFFF lea eax, dword ptr [ebp-114]
00402206 |. 50 push eax ; /String2
00402207 |. FF75 08 push dword ptr [ebp+8] ; |String1
0040220A |. FF15 68714100 call dword ptr [<&KERNEL32.lstr>; \lstrcmpA
00402210 |. 85C0 test eax, eax ; 这里要相等
进来走了好几圈没什么收获,觉得好像在座一个什么复杂的运算,郁闷中,拿起peid查了下加密算法,果然,是很常规的RSA算法,用了Miracl库,找来资料饿补一番,原来是RSA
得解密过程,这里
d=798199
n=9be815a0794c8d1fd2e51f5b6f1010bbf15f690e1fe0df0de760ea02c28b3ab6c399f9a2e81d0b6dff1396ebe963ec7a647fb9d9a335f852fed366be72fc4ef124aac0497869b5906bc5f496bbd
d3bd9
c=注册码
得到的结果与用户名比较,算法不可逆没再追注册算法,其实可以把注册码当用户名,算出来全是乱码,还是作罢。
爆破之
因为程序每次启动要检查注册信息,所以找到比较处,其实还是刚才的函数最后jnz->je即可!
------------------------------------------------------------------------
【破解总结】算是对RSA有了一次亲密接触,没什么总结的,大牛快飘过吧
------------------------------------------------------------------------
【版权声明】 |
|