吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30340|回复: 99
收起左侧

[原创] 豪迪群发2018.2.6版破解 去小尾巴

  [复制链接]
枫笑九洲 发表于 2018-2-26 20:04
本帖最后由 枫笑九洲 于 2018-2-27 08:36 编辑

1、OD载入,搜索已注册版本
[Asm] 纯文本查看 复制代码
005522CC  |.  803D 04815900>cmp byte ptr ds:[0x598104],0x0           ;  0改1
005522D3  |.  74 10         je short qqqf.005522E5
005522D5  |.  BA A0235500   mov edx,qqqf.005523A0                    ;  已注册版本


搜索 全部命令 cmp byte ptr ds:[0x598104],0x0
[Asm] 纯文本查看 复制代码
找到的命令
地址       反汇编                                    注释
00551D1E   cmp byte ptr ds:[0x598104],0x0            ds:[00598104]=00
00552078   cmp byte ptr ds:[0x598104],0x0            ds:[00598104]=00
005522D3   je short qqqf.005522E5                    (初始 CPU 选择)


点击第一条命令进去
[Asm] 纯文本查看 复制代码
00551D1E  |> \803D 04815900>cmp byte ptr ds:[0x598104],0x0           ;  改0为1
00551D25  |.  74 24         je short qqqf.00551D4B
00551D27  |.  8D4D F0       lea ecx,[local.4]

转储后,再打开,显示己注册

2、去掉烦人的小尾巴
找c++和delphi按钮特征码 #740E8BD38B83????????FF93????????#并在下面的call处下断
奉上个脚本下断
[Asm] 纯文本查看 复制代码
mov Addr,401000
loop:
find Addr,#740E8BD38B83????????FF93????????#
cmp $RESULT,0
je Exit
add $RESULT,0A
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
ret 


断点下好后,点击发送,断下来了
[Asm] 纯文本查看 复制代码
0047BFD4  |.  FF93 20010000 call dword ptr ds:[ebx+0x120]            ;  F7跟进
0047BFDA  |>  5B            pop ebx                                  ;  00E7BA78
0047BFDB  \.  C3            retn


F8一直向下,

[Asm] 纯文本查看 复制代码
005828C5  |.  8B45 90       mov eax,[local.28]                       ;  需要发送的文字出现
005828C8  |.  8D4D 94       lea ecx,[local.27]
005828CB  |.  BA 0A000000   mov edx,0xA
005828D0  |.  E8 6BC1EBFF   call qqqf1.0043EA40
005828D5  |.  8B45 94       mov eax,[local.27]


继续向下

[Asm] 纯文本查看 复制代码
00582927  |.  E8 8457FFFF   call qqqf1.005780B0
0058292C  |.  8B45 D4       mov eax,[local.11]
0058292F  |.  33D2          xor edx,edx


我们在数据窗口可以看到[local.11]处存的是我们要发送的文字,但此时已经和小尾巴连在一起了。
我们进00582927处的call看看,看能不能砍掉小尾巴,在00582927处下断,并重新点击发送

断下来后,我们锁定堆栈到ebp-2C处,然后跟进call看看
[Asm] 纯文本查看 复制代码
005780B0  /$  55            push ebp
005780B1  |.  8BEC          mov ebp,esp
005780B3  |.  B9 05000000   mov ecx,0x5
005780B8  |>  6A 00         /push 0x0
005780BA  |.  6A 00         |push 0x0
005780BC  |.  49            |dec ecx
005780BD  |.^ 75 F9         \jnz short qqqf1.005780B8
005780BF  |.  51            push ecx


一路向下

[Asm] 纯文本查看 复制代码
00578110  |.  FF51 1C       call dword ptr ds:[ecx+0x1C]             ;  ebp-2c处出现发送内容
00578113  |.  E9 FE000000   jmp qqqf1.00578216
00578118  |>  A1 20885900   mov eax,dword ptr ds:[0x598820]
0057811D  |.  8B80 E8030000 mov eax,dword ptr ds:[eax+0x3E8]

此时ebp-2c处没有添加小尾巴

继续向下,一直来到:

[Asm] 纯文本查看 复制代码
0057827C  |. /75 1F         jnz short qqqf1.0057829D
0057827E  |. |FF33          push dword ptr ds:[ebx]
00578280  |. |68 BC835700   push qqqf1.005783BC                      ;  UNICODE "
00578285  |. |A1 C0455900   mov eax,dword ptr ds:[0x5945C0]
0057828A  |. |FF30          push dword ptr ds:[eax]
0057828C  |. |68 CC835700   push qqqf1.005783CC                      ;  UNICODE "
00578291  |. |8BC3          mov eax,ebx
00578293  |. |BA 04000000   mov edx,0x4
00578298  |. |E8 0FCBE8FF   call qqqf1.00404DAC


经过上面这个call后,ebp-2c处出现小尾巴,我们只要跳过这个call就好了
在0057827C处,jnz改jmp,改好后保存

再次打开软件,点发送测试,小尾巴没了。。。。。





免费评分

参与人数 23吾爱币 +24 热心值 +23 收起 理由
duruiqiang + 1 我很赞同!
吾爱-奇衡三 + 1 热心回复!
1358582642 + 1 + 1 用心讨论,共获提升!
华粑粑 + 1 + 1 求成品!
wensensen + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
心语科技 + 1 + 1 感谢大佬,可以发个成品吗。Q706624168
始终大碟 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
fgpgy + 1 + 1 用心讨论,共获提升!
蓝辰 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
cyycl + 1 + 1 能不能出个成品 大佬
夏之风 + 1 + 1 求个成品
amishi + 1 + 1 谢谢@Thanks!
Meizu一只小红果 + 1 + 1 热心回复!
qaz003 + 1 用心讨论,共获提升!
fengbaby2003 + 1 + 1 谢谢@Thanks!
2658026667 + 1 + 1 热心回复!
Hmily + 5 + 1 用心讨论,共获提升!
不明真相的群众 + 1 + 1 我很赞同!
Vanity97 + 1 + 1 热心回复!
liphily + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
baiqpl0254 + 1 + 1 想要成品
Tim-52Pojie + 1 + 1 用心讨论,共获提升!
陈歆 + 1 + 1 能不能出个成品呢

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 枫笑九洲 发表于 2018-2-28 23:00
本帖最后由 枫笑九洲 于 2018-3-1 00:16 编辑

补充;破解程序自检校:



1、找程序自检校

用delphi按钮事件下断,点插入随机字母

[Asm] 纯文本查看 复制代码
0048D4E8   .  8B83 8C000000 mov eax,dword ptr ds:[ebx+0x8C]
0048D4EE   .  FF93 88000000 call dword ptr ds:[ebx+0x88]             ;  断在此处,F7进去看看
0048D4F4   >  5E            pop esi                                  ;  0012FE24


一路向下:
[Asm] 纯文本查看 复制代码
00584710  /.  55            push ebp
00584711  |.  8BEC          mov ebp,esp
00584713  |.  6A 00         push 0x0
00584715  |.  6A 00         push 0x0
00584717  |.  33C0          xor eax,eax
00584719  |.  55            push ebp
0058471A  |.  68 6C475800   push qqqf1.0058476C
0058471F  |.  64:FF30       push dword ptr fs:[eax]
00584722  |.  64:8920       mov dword ptr fs:[eax],esp
00584725  |.  8D4D F8       lea ecx,[local.2]
00584728  |.  33D2          xor edx,edx
0058472A  |.  B8 1E000000   mov eax,0x1E
0058472F  |.  E8 5405F3FF   call qqqf1.004B4C88
00584734  |.  8B55 F8       mov edx,[local.2]
00584737  |.  8D45 FC       lea eax,[local.1]


在0058472F处的call,F8步过后,我们可以发现在ebp-0x8处保存的是插入内容的地址

修改后的程序


原程序
由上面两副图可知 004B4C88是关键call,我们进去看看,

[Asm] 纯文本查看 复制代码
004B4C88  /$  55            push ebp
004B4C89  |.  8BEC          mov ebp,esp
004B4C8B  |.  51            push ecx                                 ;  在此处锁定堆栈到ebp-08处
004B4C8C  |.  B9 06000000   mov ecx,0x6
004B4C91  |>  6A 00         /push 0x0


一路向下,来到

[Asm] 纯文本查看 复制代码
004B4D00  |.  E8 CFDDF4FF   call qqqf1.00402AD4
004B4D05  |.  8B45 F0       mov eax,[local.4]
004B4D08  |.  8D55 F8       lea edx,[local.2]
004B4D0B  |.  E8 38F0FFFF   call qqqf1.004B3D48                      ;  经过这个call,ebp-8处出现一长串数字
004B4D10  |.  8D4D EC       lea ecx,[local.5]
004B4D13  |.  8D56 1E       lea edx,dword ptr ds:[esi+0x1E]

现在我们用OD打开原程序:定位到004B4D0B处,下断,然后点插入随机字母,断下来后,F8步过,
查看ebp-8处的数字

EBP-8    > 031C1BAC  ASCII "2573761770797004"  修改后的程序
EBP-8    > 03001BBC  ASCII "0299305083362644"  原程序

我们在数据窗口定位到031C1BAC,并把里面的数字改为"0299305083362644" 试试

然后F9运行,我们可以看到乱码己经不见,程序己经正常


2、修改程序
思路:我们只要保证程序在经过004B4D0B的call后,EBP-8处的那串数字为原程序即可

找一段空白代码段:

[Asm] 纯文本查看 复制代码
005890C0   .  0000          add byte ptr ds:[eax],al
005890C2   .  0000          add byte ptr ds:[eax],al
005890C4   .  0000          add byte ptr ds:[eax],al
005890C6   .  0000          add byte ptr ds:[eax],al
005890C8   .  0000          add byte ptr ds:[eax],al
005890CA   .  0000          add byte ptr ds:[eax],al
005890CC   .  0000          add byte ptr ds:[eax],al
005890CE   .  0000          add byte ptr ds:[eax],al


在004B4D10处,改写程序:
[Asm] 纯文本查看 复制代码
004B4D0B  |.  E8 38F0FFFF   call qqqf2.004B3D48
004B4D10  |.  E9 AB430D00   jmp qqqf2.005890C0                       ;  跳向自写代码
004B4D15  |?  90            nop
004B4D16  |.  8B03          mov eax,dword ptr ds:[ebx]


005890C0   .  60            pushad
005890C1   ?  8B45 F8       mov eax,dword ptr ss:[ebp-0x8]
005890C4   .  C700 30323939 mov dword ptr ds:[eax],0x39393230
005890CA   .  C740 04 33303>mov dword ptr ds:[eax+0x4],0x30353033
005890D1   ?  C740 08 38333>mov dword ptr ds:[eax+0x8],0x36333338
005890D8   .  C740 0C 32363>mov dword ptr ds:[eax+0xC],0x34343632
005890DF   ?  61            popad
005890E0   .  8D4D EC       lea ecx,dword ptr ss:[ebp-0x14]
005890E3   ?  8D56 1E       lea edx,dword ptr ds:[esi+0x1E]
005890E6   .^ E9 2BBCF2FF   jmp qqqf2.004B4D16                        ;  跳回原程序


嘿嘿,自检校就这样没了,不知道可不可以申个精?

 楼主| 枫笑九洲 发表于 2018-2-26 21:02
xyg10300 发表于 2018-2-26 20:50 来自手机
wls 发表于 2018-2-26 20:17
不错,感谢分享,正好使用下
wlx147520 发表于 2018-2-26 20:20
学习一下
暮歌尽天下 发表于 2018-2-26 20:24
感谢大佬的分享,有用
火之国 发表于 2018-2-26 20:25
不错,感谢分享
头像被屏蔽
零下零一度 发表于 2018-2-26 20:28
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
晨熙_ 发表于 2018-2-26 20:57
提示: 作者被禁止或删除 内容自动屏蔽
niuxy 发表于 2018-2-26 20:59
有没有成品呀
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 10:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表