首页
社区
课程
招聘
[旧帖] 请教如何去除豪迪QQ2013群发广告尾巴 0.00雪花
发表于: 2013-2-13 00:40 46796

[旧帖] 请教如何去除豪迪QQ2013群发广告尾巴 0.00雪花

2013-2-13 00:40
46796
【求助】请教去除豪迪QQ群发广告尾巴,软件虽然有破解版本的,当是我想自己破下,我查找了字符串,虽然改成了注册版了,当还是在发送时有广告,这个软件注册和未注册其实就是这个广告,注册了的就不会加这段广告,软件用Borland Delphi 6.0 - 7.0,软件注册会在安装目录下生成一个option。ini文件,里面存有注册码和机器码,这个软件应该不仅仅是重启验证,估计还有网络验证,如果有人有兴趣帮忙看下这个软件,我想知道思路。
软件下载地址http://www.hdrj.cn/qf2013.exe
在这祝大家新年快乐,祝大家年年发才,学有所成!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (47)
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
木有 爆破完全呗。  网络验证没用的,你没爆破完全而已~
2013-2-13 00:57
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我知道,可是找了很久都没有找到关键点,如果您有时间请帮忙,看看,谢谢。
2013-2-13 01:09
0
雪    币: 3202
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵,曾经破解过这个软件,只要改三处就 完美破解 OK,

一处是给常量赋值
一处是Nop掉二次验证
另一处是去尾巴。
2013-2-13 01:26
0
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
脱壳 fc 一下吧 没细看
年前有人发过来 发祝福来着
是否有后门啥自己检查吧
上传的附件:
2013-2-13 13:50
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢楼上二位,我先下载看下,这三处我也知道,当是字符串是找不到的,我还是没有透彻的理解。谢谢楼上二位大哥。
2013-2-13 15:29
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我下载了下了下,我的这个版本和你那个版本不一样,我找不出哪处修改了,能有人写个破文出来吗,在这感谢大家了~!
2013-2-13 15:40
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
用od分析到软件通过复制内容到剪贴板,再SendMessageTimeout粘贴消息到聊天窗口,进行模拟点击发送
间接调用SendMessageTimeout地址为0x4EDC40
我想之后该怎么做就不用教了
2013-2-13 16:46
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
004EDC40  /$  55            push    ebp
004EDC41  |.  8BEC          mov     ebp, esp
004EDC43  |.  51            push    ecx
004EDC44  |.  53            push    ebx
004EDC45  |.  8D5D FC       lea     ebx, dword ptr [ebp-4]
004EDC48  |.  53            push    ebx                              ; /pResult
004EDC49  |.  8B5D 08       mov     ebx, dword ptr [ebp+8]           ; |
004EDC4C  |.  53            push    ebx                              ; |Timeout
004EDC4D  |.  6A 00         push    0                                ; |Flags = SMTO_NORMAL
004EDC4F  |.  8B5D 0C       mov     ebx, dword ptr [ebp+C]           ; |
004EDC52  |.  53            push    ebx                              ; |lParam
004EDC53  |.  51            push    ecx                              ; |wParam
004EDC54  |.  52            push    edx                              ; |Message
004EDC55  |.  50            push    eax                              ; |hWnd
004EDC56  |.  E8 559BF1FF   call    <jmp.&user32.SendMessageTimeoutA>; \SendMessageTimeoutA
004EDC5B  |.  5B            pop     ebx
004EDC5C  |.  59            pop     ecx
004EDC5D  |.  5D            pop     ebp
004EDC5E  \.  C2 0800       retn    8
004EDC61      8D40 00       lea     eax, dword ptr [eax]
004EDC64  /$  55            push    ebp
004EDC65  |.  8BEC          mov     ebp, esp
004EDC67  |.  6A 00         push    0
004EDC69  |.  6A 00         push    0
004EDC6B  |.  6A 00         push    0
004EDC6D  |.  53            push    ebx
004EDC6E  |.  56            push    esi
004EDC6F  |.  8BDA          mov     ebx, edx
004EDC71  |.  8945 FC       mov     dword ptr [ebp-4], eax
004EDC74  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
004EDC77  |.  E8 346BF1FF   call    004047B0
004EDC7C  |.  33C0          xor     eax, eax
004EDC7E  |.  55            push    ebp
004EDC7F  |.  68 15DD4E00   push    004EDD15
004EDC84  |.  64:FF30       push    dword ptr fs:[eax]
004EDC87  |.  64:8920       mov     dword ptr fs:[eax], esp
004EDC8A  |.  E8 7990F1FF   call    <jmp.&kernel32.GetLastError>     ; [GetLastError
004EDC8F  |.  8BF0          mov     esi, eax
004EDC91  |.  85F6          test    esi, esi
004EDC93  |.  0F9FC0        setg    al
004EDC96  |.  84D8          test    al, bl
004EDC98  |.  74 3E         je      short 004EDCD8
004EDC9A  |.  6A 00         push    0
004EDC9C  |.  FF75 FC       push    dword ptr [ebp-4]
004EDC9F  |.  68 2CDD4E00   push    004EDD2C                         ;  \r\n
004EDCA4  |.  68 38DD4E00   push    004EDD38                         ;  原因:

您说的是这段????
2013-2-13 19:39
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
嗯,不过看来是添加信息执行完了再调用这里因此
方法1.追踪调用004EDC40的过程,再进行patch
方法2.inline hook对剪贴板操作的过程
起码就有这些
2013-2-13 20:17
0
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
小哥 不好意思 我以为你要文件呢
晚上看了一下  
文件没有加壳 里面字符串加密了一部分
看看字符串明文的 有几个有用的产考
CODE:005295E4 _str_________________3 dd 0FFFFFFFFh           ; _top
CODE:005295E4                                         ; DATA XREF: Idcoderheader::DecodeHeader(System::AnsiString)+259o
CODE:005295E4                 dd 16                   ; Len
CODE:005295E4                 db '注册码已经作废!',0 ; Text

引用这个字符串的代码
CODE:00529357                 mov     eax, ds:maybe_hit
CODE:0052935C                 mov     byte ptr [eax], 0
CODE:0052935F                 xor     edx, edx
CODE:00529361                 mov     eax, offset _str_________________3.Text

maybe_hit 可能就是标示位 我改的名字 ( BSS:0054B074 )

程序没有限制 只是多加了点尾巴 所以优先看发送部分能搞定最好了

定位到 点击发送的按钮 这个函数
TForm1.btn_StartClick
0053CFD4   

这个函数里面 这段引用了 maybe_hit

CODE:0053D124                 mov     eax, ds:maybe_hit
CODE:0053D129                 cmp     byte ptr [eax], 0
CODE:0053D12C                 jz      short loc_53D176
CODE:0053D12E                 mov     eax, 14h
CODE:0053D133                 call    unknown_libname_46 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
CODE:0053D138                 mov     edx, ds:off_5472A4
CODE:0053D13E                 mov     eax, [edx+eax*4]
CODE:0053D141                 call    sub_4045C0
CODE:0053D146                 cmp     eax, 0Ch
CODE:0053D149                 jz      short loc_53D16C
CODE:0053D14B                 mov     eax, 14h
CODE:0053D150                 call    unknown_libname_46 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
CODE:0053D155                 mov     edx, ds:off_5472A4
CODE:0053D15B                 mov     eax, [edx+eax*4]
CODE:0053D15E                 call    sub_4045C0
CODE:0053D163                 cmp     eax, 18h
CODE:0053D166                 jz      short loc_53D16C
CODE:0053D168                 xor     eax, eax
CODE:0053D16A                 jmp     short loc_53D16E
CODE:0053D16C ; ---------------------------------------------------------------------------
CODE:0053D16C
CODE:0053D16C loc_53D16C:                             ; CODE XREF: _TForm1_btn_StartClick+175j
CODE:0053D16C                                         ; _TForm1_btn_StartClick+192j
CODE:0053D16C                 mov     al, 1
CODE:0053D16E
CODE:0053D16E loc_53D16E:                             ; CODE XREF: _TForm1_btn_StartClick+196j
CODE:0053D16E                 mov     edx, ds:maybe_hit
CODE:0053D174                 mov     [edx], al
CODE:0053D176
CODE:0053D176 loc_53D176:                             ; CODE XREF: _TForm1_btn_StartClick+158j
CODE:0053D176                 mov     eax, ds:maybe_hit
CODE:0053D17B                 cmp     byte ptr [eax], 0
CODE:0053D17E                 jnz     short loc_53D1EB

od 载入调试   修改 标示位 改跳转 可以正常运行 保存文件发现 不能正常工作 可能有校验吧  
用内存延时补丁可以解决

延时12秒 修改 试了一下可以用

樱花 补丁 yinghua15s1114.zip 肯定还有其他的地方可以破   从注册那块入手可能会分析可能工作量会大一点吧 吃饭了明天去过节了
上传的附件:
2013-2-13 22:32
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢楼上详细的分析,谢谢,让我学到了知识,楼上分析的软件不是OD吧?
2013-2-14 09:37
0
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
早上好  过节了
你要是分析的话 还是从头分析吧  这个有点投机了
主要用od 和ida
2013-2-14 11:36
0
雪    币: 3202
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个过程很简单,先从关于窗体中的字符串“未注册版本”入手,然后一路疯狂地F7,F8吧,很容易找到关键的。
2013-2-14 12:01
0
雪    币: 308
活跃值: (67)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
xp32 下关键地址:0x00402983 ,各种原因自己去看吧
2013-2-14 12:20
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
未注册版本没用,我试过,你改了,也只是提示已注册,那个尾巴还是在的,我也用OD跟了,当是没有跟到真码,软件我看了,应该是INI重启验证,加网络验证的,具体的,我还是没有搞清楚,还在找,知识量有限,不知道有没有人能写出这个破文,感谢楼上的兄弟们,我会加油的。
2013-2-14 13:17
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
00529340  |.  B8 00C2EB0B   mov     eax, 0BEBC200
00529345  |.  E8 5A03FCFF   call    004E96A4
0052934A  |.  8B55 BC       mov     edx, dword ptr [ebp-44]
0052934D  |.  8B45 EC       mov     eax, dword ptr [ebp-14]
00529350  |.  E8 B7B3EDFF   call    0040470C
00529355  |.  75 27         jnz     short 0052937E00529357  |.  A1 这里改了没用74725400   mov     eax, dword ptr [547274]
0052935C  |.  C600 00       mov     byte ptr [eax], 0
0052935F  |.  33D2          xor     edx, edx
00529361  |.  B8 EC955200   mov     eax, 005295EC                    ;  注册码已经作废!
00529366  |.  E8 F948FCFF   call    004EDC64
0052936B  |.  33C9          xor     ecx, ecx

0052A49B  |.  8B83 0C030000 mov     eax, dword ptr [ebx+30C]
0052A4A1  |.  E8 62CEF4FF   call    00477308
0052A4A6  |.  803D 74B05400>cmp     byte ptr [54B074], 0
0052A4AD      74 10         je      short 0052A4BF                   ;  NOP掉为注册版,当是尾巴还是没去掉0052A4AF  |.  BA 2CA55200   mov     edx, 0052A52C                    ;  已注册版本
0052A4B4  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
2013-2-14 13:44
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18
应该你nop掉的只是显示注册信息的过程,重新跟试试
如果有多个验证,有一个不通过,都不会显示已注册且不退出
我是这么想,发送时会先调用检测是否选中头像等
那就在messageboxa设断点,故意弄错误信息,再逐步追踪哪里调用的
2013-2-14 18:25
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
这个软件破解真是麻烦啊,我到现在还是没找出来,有人能写个破文吗?用我给的下载地址下载,不然破的代码也不一样,谢谢楼上的朋友,虽然这些天我还没搞定这个软件
2013-2-15 00:38
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
以前跟朋友看过这软件。

你们说的尾巴是不是这个?
知道了来源以后,接下来你自己看着办了。

上传的附件:
2013-2-16 12:02
0
雪    币: 3202
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
破文:
00537C15  |.  E8 9AC9ECFF   call QS2013.004045B4
00537C1A  |.  83F8 0C       cmp eax,0xC
00537C1D  |.  74 21         je XQS2013.00537C40  ---> 改 jmp 就去除广告尾巴
00537C1F  |.  B8 14000000   mov eax,0x14
00537C24  |.  E8 1FB2ECFF   call QS2013.00402E48
00537C29  |.  8B15 E4215400 mov edx,dword ptr ds:[0x5421E4]                      ;  QS2013.00546060
00537C2F  |.  8B0482        mov eax,dword ptr ds:[edx+eax*4]
00537C32  |.  E8 7DC9ECFF   call QS2013.004045B4
00537C37  |.  83F8 18       cmp eax,0x18
00537C3A  |.  74 04         je XQS2013.00537C40
00537C3C  |.  33C0          xor eax,eax
00537C3E  |.  EB 02         jmp XQS2013.00537C42
00537C40  |>  B0 01         mov al,0x1

至于要问我是如何找到这个关键的,现在也想不起来了,只知道当时调试了好久才好不容易找到的,期间疯狂地 F7, F8
2013-2-16 12:49
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢楼上的兄弟指出,当是我按照你说的改了,还是有尾巴请看下图、
传图失败,郁闷了
2013-2-16 15:49
0
雪    币: 3202
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
告诉过你了,还有两处需要修改,你自己找吧。什么都要别人指点,那还学什么破解?

你用 Interactive Delphi Rescontor 找“发送”按扭事件,跟“关于”的窗体事件,下断点,从“关于”窗体里的“未注册版本”字符串入手破解,看看是哪个跳转跳过来的,跳转上面的那个常面是哪里给赋值的,查找->所有命令-> 全部下断点,然后就可以很容易找到破解关键的。
2013-2-16 19:32
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
24
如果纯改汇编的话,我只试过把文字去掉,还有图片
在堆栈0x12FA2C处改了就尾巴都去掉了
还有为什么OD的00537C15不是call QS2013.004045B4
2013-2-17 09:35
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
谢谢,楼上的几位大哥指点,感谢,本人菜鸟,有很多不懂的地方还要进一步学习,在这感谢大家能为我这么一个小软件破解进行详细分析,万分感谢。
2013-2-17 09:51
0
游客
登录 | 注册 方可回帖
返回
//