返回信息流重要声明!
本文纯属学习交流之用,由本文所造成的一切法律纠纷均与作者本人无关!
最近在忙着写毕业论文,就到网上搜下有没有直接从源代码生成流程图的软件,搜索的结果是一款叫AutoFlowchart的软件可以做到,但是共享软件,需要注册,不然有功能限制——无法把生成图保存为visio等占用格式,还会在关闭之间弹出nag提醒注册。本来是想看看网上有没有它的破解版,很可惜的是,找不到,所以只好自己动手了。
所用版本是v3.1.3
查下壳看看,显示如下:
先不管了,打开OD载入看看:
006C8000 > $ 60 pushad
006C8001 . E8 01000000 call 006C8007
006C8006 7E db 7E ; CHAR '~'
006C8007 . 83C4 04 add esp, 4
006C800A . 47 inc edi
006C800B . F8 clc
006C800C . 42 inc edx
006C800D . 42 inc edx
006C800E . 43 inc ebx
006C800F . 41 inc ecx
006C8010 . 66:81F2 B931 xor dx, 31B9
006C8015 . 50 push eax
006C8016 . E8 01000000 call 006C801C
006C801B >- 72 83 jb short 006C7FA0
006C801D . C40458 les eax, [eax+ebx*2]
006C8020 . 81C9 995E1262 or ecx, 62125E99
经过大概判断,认为这个是很可能是由Delphi写的,至少是Borland产的。
经过一系列分析,大概知道了注册流程:
弹出注册框要你注册,填写完后软件把注册码和用户名保存在注册表,然后要求重启软件进行验证。
又经过一系列的分析,找到了关键代码:
006053E1 . 8D55 F4 lea edx, [ebp-C]
006053E4 . B8 98576000 mov eax, 00605798 ; ASCII "Name_AF737"
006053E9 . E8 F22AF4FF call 00547EE0
006053EE . 8D55 F0 lea edx, [ebp-10]
006053F1 . B8 AC576000 mov eax, 006057AC ; ASCII "Code_AF911"
006053F6 . E8 E52AF4FF call 00547EE0
006053FB . 8B45 F0 mov eax, [ebp-10]
006053FE . E8 15F3DFFF call 00404718
00605403 . 83F8 04 cmp eax, 4
00605406 . 0F8E 94000000 jle 006054A0
0060540C . 33C0 xor eax, eax
0060540E . 55 push ebp
0060540F . 68 96546000 push 00605496
00605414 . 64:FF30 push dword ptr fs:[eax]
00605417 . 64:8920 mov fs:[eax], esp
0060541A . 33C0 xor eax, eax
0060541C . 8945 EC mov [ebp-14], eax
0060541F > B8 32000000 mov eax, 32
00605424 . E8 9FDADFFF call 00402EC8
00605429 . 83F8 28 cmp eax, 28
0060542C . 7F 06 jg short 00605434
0060542E . 837D EC 63 cmp dword ptr [ebp-14], 63
00605432 . 75 4F jnz short 00605483
00605434 > 8D4D D8 lea ecx, [ebp-28]
00605437 . BA C0576000 mov edx, 006057C0
0060543C . 8B45 F0 mov eax, [ebp-10]
0060543F . E8 B426F4FF call 00547AF8
00605444 . 8B55 D8 mov edx, [ebp-28]
00605447 . 8D45 F0 lea eax, [ebp-10]
0060544A . E8 A1F0DFFF call 004044F0
0060544F . 8B45 F0 mov eax, [ebp-10]
00605452 . 8B55 F4 mov edx, [ebp-C]
00605455 . E8 0AF4DFFF call 00404864
0060545A . 75 27 jnz short 00605483
0060545C . 8D45 D4 lea eax, [ebp-2C]
0060545F . 8B4D F4 mov ecx, [ebp-C]
00605462 . 33D2 xor edx, edx
00605464 . E8 FBF2DFFF call 00404764
00605469 . 8B55 D4 mov edx, [ebp-2C]
0060546C . 8B45 FC mov eax, [ebp-4]
0060546F . 8B80 5C030000 mov eax, [eax+35C]
00605475 . E8 5E32E6FF call 004686D8
0060547A . C605 282D6100>mov byte ptr [612D28], 1
00605481 . EB 09 jmp short 0060548C
00605483 > FF45 EC inc dword ptr [ebp-14]
00605486 . 837D EC 64 cmp dword ptr [ebp-14], 64
0060548A .^ 75 93 jnz short 0060541F
0060548C > 33C0 xor eax, eax
0060548E . 5A pop edx
0060548F . 59 pop ecx
00605490 . 59 pop ecx
00605491 . 64:8910 mov fs:[eax], edx
00605494 . EB 0A jmp short 006054A0
00605496 .^ E9 4DE6DFFF jmp 00403AE8
0060549B . E8 B0E9DFFF call 00403E50
006054A0 > 33C0 xor eax, eax
006054A2 . 8945 EC mov [ebp-14], eax
006054A5 > B8 32000000 mov eax, 32
006054AA . E8 19DADFFF call 00402EC8
006054AF . 83F8 0A cmp eax, 0A
006054B2 . 7E 18 jle short 006054CC
006054B4 . 8B55 F4 mov edx, [ebp-C]
006054B7 . B8 D4576000 mov eax, 006057D4
006054BC . E8 9BF5DFFF call 00404A5C
006054C1 . 85C0 test eax, eax
006054C3 . 7E 07 jle short 006054CC
006054C5 . C605 282D6100>mov byte ptr [612D28], 0
006054CC > FF45 EC inc dword ptr [ebp-14]
006054CF 837D EC 64 cmp dword ptr [ebp-14], 64
006054D3 ^ 75 D0 jnz short 006054A5
006054D5 803D 282D6100>cmp byte ptr [612D28], 0
006054DC 75 13 jnz short 006054F1
006054DE . 8B45 FC mov eax, [ebp-4]
006054E1 . 8B80 5C030000 mov eax, [eax+35C]
006054E7 . BA E8576000 mov edx, 006057E8 ; ASCII " Trials version"
006054EC . E8 E731E6FF call 004686D8
006054F1 > EB 06 jmp short 006054F9
006054F3 >^ EB FC jmp short 006054F1
006054F5 .^ EB FC jmp short 006054F3
上面是完整的验证算法,算法应该不会很难,我懒得分析了,谁要是有兴趣就分析看看。所以就直接爆破搞起。
看到mov byte ptr [612D28], 0这个没?
内存位置612D28是关键,把这个内存值置为1,就完美爆破了。
我们找一个地方修改下:
006054CF 837D EC 64 cmp dword ptr [ebp-14], 64
就把这条语句改为:
mov byte ptr [612D28], 1
保存下来,ok,完美爆破成功了!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #39804同步于 2010/12/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
写论文好帮手,由源代码生成流程图的软件——AutoFlowchart破解
jmpesp
2010/12/6镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
大牛你好
有款游戏屏蔽了后台键盘消息,该怎么办?跟了下,只有一次调用GetActiveWindow
而且据说设置Active/focus/mouse capture之后再发键盘消息都不好使,有啥思路没?给点提示吧
要不就没法一边工作一边练级了,尤其是练小号
【 在 FadeToBlack 的大作中提到: 】
: 大牛你好
: 有款游戏屏蔽了后台键盘消息,该怎么办?跟了下,只有一次调用GetActiveWindow
: 而且据说设置Active/focus/mouse capture之后再发键盘消息都不好使,有啥思路没?给点提示吧
: ...................
对windows api不熟 是不是hook掉相应消息了
就在SetWindowsHookEx 或者 SetWindowsHook下断看看设置了啥钩子函数?
不应该啊... 既然消息发过去了,hook了会起什么作用?
【 在 jmpesp (心爱走天涯 ) 的大作中提到: 】
: 对windows api不熟 是不是hook掉相应消息了
: 就在SetWindowsHookEx 或者 SetWindowsHook下断看看设置了啥钩子函数?
【 在 FadeToBlack 的大作中提到: 】
: 不应该啊... 既然消息发过去了,hook了会起什么作用?
但你发过来的时候 我可以不处理呀 比如吧 判断下当前是否在后台运行 如果是的话 这时候的键盘消息我就不处理了
我觉得这时候有两种情况考虑:
(1)如果键盘消息已经到达本程序了,这时候应该在消息处理函数下文章,找到WndProc中相应的键盘消息处理分支看看
(2)如果键盘消息没到程序的话,那肯定被hook掉了
可以确定是第一条了...就是懒得去读汇编
【 在 jmpesp (心爱走天涯 ) 的大作中提到: 】
: 我觉得这时候有两种情况考虑:
: (1)如果键盘消息已经到达本程序了,这时候应该在消息处理函数下文章,找到WndProc中相应的键盘消息处理分支看看
: (2)如果键盘消息没到程序的话,那肯定被hook掉了
: ...................
太nb了!
【 在 jmpesp (心爱走天涯 ) 的大作中提到: 】
: 重要声明!
: 本文纯属学习交流之用,由本文所造成的一切法律纠纷均与作者本人无关!
: 最近在忙着写毕业论文,就到网上搜下有没有直接从源代码生成流程图的软件,搜索的结果是一款叫AutoFlowchart的软件可以做到,但是共享软件,需要注册,不然有功能限制——无法把生成图保存为visio等占用格式,还会在关闭之间弹出nag提醒注册。本来是想看看网上有没有它�
: ...................