吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9273|回复: 20
收起左侧

[原创] 【实战】利用bp ShellExecuteA去软件弹窗。

[复制链接]
醉生梦死. 发表于 2016-8-23 11:30
本帖最后由 醉生梦死. 于 2016-8-23 11:49 编辑

最近在研究一个叫宝宝取名的软件。发现每次关闭的时候,都会打开作者的网页。很讨厌!
相信各位在破解软件的时候,也会遇到这样的情况!
今天我们就利用bp ShellExecuteA去软件弹窗!
新手,欢迎各位批评指正帖中的不足、错误之处!
1.查壳(无壳,VC++6.0编写,其实是易语言)
1.png
2.载入OD,输入“bp ShellExecuteA”,回车。
按“F9”运行程序。然后再关闭程序。(因为程序是在退出的时候,才弹出IE的。)
1.png
3.如下图。作者网址出现了。
按“alt+F9” 执行到用户。
2.png
4.这段就是讨厌的弹窗代码了。右键,二进制,用NOP填充。

3.png
4.png


00555AD0  /$  6A FF         push -0x1
00555AD2  |.  68 AB936200   push 宝宝取名.006293AB                       ;  SE 处理程序安装
00555AD7  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
00555ADD  |.  50            push eax
00555ADE  |.  64:8925 00000>mov dword ptr fs:[0],esp
00555AE5  |.  81EC 0C020000 sub esp,0x20C
00555AEB  |.  A1 94C9FA00   mov eax,dword ptr ds:[0xFAC994]
00555AF0  |.  56            push esi
00555AF1  |.  57            push edi
00555AF2  |.  8BF9          mov edi,ecx
00555AF4  |.  894424 08     mov dword ptr ss:[esp+0x8],eax
00555AF8  |.  8B47 44       mov eax,dword ptr ds:[edi+0x44]
00555AFB  |.  C78424 1C0200>mov dword ptr ss:[esp+0x21C],0x0
00555B06  |.  85C0          test eax,eax
00555B08  |.  0F85 FA000000 jnz 宝宝取名.00555C08
00555B0E  |.  8B4F 48       mov ecx,dword ptr ds:[edi+0x48]          ;  宝宝取名.00FAC9A8
00555B11  |.  8D77 48       lea esi,dword ptr ds:[edi+0x48]
00555B14  |.  8B41 F8       mov eax,dword ptr ds:[ecx-0x8]
00555B17  |.  85C0          test eax,eax
00555B19  |.  75 1B         jnz short 宝宝取名.00555B36
00555B1B  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
00555B1F  |.  C78424 1C0200>mov dword ptr ss:[esp+0x21C],-0x1
00555B2A  |.  E8 AA4B0C00   call 宝宝取名.0061A6D9
00555B2F  |.  33C0          xor eax,eax
00555B31  |.  E9 49010000   jmp 宝宝取名.00555C7F
00555B36  |>  68 E07EF900   push 宝宝取名.00F97EE0                       ;  ASCII "mailto:"
00555B3B  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
00555B3F  |.  E8 1E4D0C00   call 宝宝取名.0061A862
00555B44  |.  56            push esi
00555B45  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
00555B49  |.  E8 A34F0C00   call 宝宝取名.0061AAF1
00555B4E  |>  8B4C24 08     mov ecx,dword ptr ss:[esp+0x8]
00555B52  |.  53            push ebx                                 ;  宝宝取名.00544A50
00555B53  |.  55            push ebp
00555B54  |.  8BAC24 2C0200>mov ebp,dword ptr ss:[esp+0x22C]
00555B5B  |.  55            push ebp                                 ; /IsShown = 0x5
00555B5C  |.  6A 00         push 0x0                                 ; |DefDir = NULL
00555B5E  |.  6A 00         push 0x0                                 ; |Parameters = NULL
00555B60  |.  51            push ecx                                 ; |FileName = 0000376E ???
00555B61  |.  68 D87EF900   push 宝宝取名.00F97ED8                       ; |Operation = "open"
00555B66  |.  6A 00         push 0x0                                 ; |hWnd = NULL
00555B68  |.  FF15 9C346300 call dword ptr ds:[<&SHELL32.ShellExecut>; \ShellExecuteA
00555B6E  |.  8BF0          mov esi,eax
00555B70  |.  83FE 20       cmp esi,0x20
00555B73  |.  0F87 E4000000 ja 宝宝取名.00555C5D
00555B79  |.  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
00555B7D  |.  8BCF          mov ecx,edi
00555B7F  |.  52            push edx                                 ;  宝宝取名.004A0003
00555B80  |.  68 D07EF900   push 宝宝取名.00F97ED0                       ;  ASCII ".htm"
00555B85  |.  68 00000080   push 0x80000000
00555B8A  |.  E8 D1FEFFFF   call 宝宝取名.00555A60
00555B8F  |.  85C0          test eax,eax
00555B91  |.  0F85 C6000000 jnz 宝宝取名.00555C5D
00555B97  |.  8B1D 68336300 mov ebx,dword ptr ds:[<&KERNEL32.lstrcat>;  kernel32.lstrcatA
00555B9D  |.  8D4424 14     lea eax,dword ptr ss:[esp+0x14]
00555BA1  |.  68 BC7EF900   push 宝宝取名.00F97EBC                       ; /StringToAdd = "\shell\open\command"
00555BA6  |.  50            push eax                                 ; |ConcatString = 0000002A ???
00555BA7  |.  FFD3          call ebx                                 ; \lstrcatA
00555BA9  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
00555BAD  |.  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
00555BB1  |.  51            push ecx
00555BB2  |.  52            push edx                                 ;  宝宝取名.004A0003
00555BB3  |.  68 00000080   push 0x80000000
00555BB8  |.  8BCF          mov ecx,edi
00555BBA  |.  E8 A1FEFFFF   call 宝宝取名.00555A60
00555BBF  |.  85C0          test eax,eax
00555BC1  |.  0F85 96000000 jnz 宝宝取名.00555C5D
00555BC7  |.  8D4424 14     lea eax,dword ptr ss:[esp+0x14]
00555BCB  |.  68 B47EF900   push 宝宝取名.00F97EB4                       ;  ASCII ""%1""
00555BD0  |.  50            push eax
00555BD1  |.  E8 5A1C0A00   call 宝宝取名.005F7830
00555BD6  |.  8BF0          mov esi,eax
00555BD8  |.  83C4 08       add esp,0x8
00555BDB  |.  85F6          test esi,esi
00555BDD  |.  75 5D         jnz short 宝宝取名.00555C3C
00555BDF  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
00555BE3  |.  68 B07EF900   push 宝宝取名.00F97EB0                       ;  ASCII "%1"
00555BE8  |.  51            push ecx
00555BE9  |.  E8 C21B0A00   call 宝宝取名.005F77B0
00555BEE  |.  8BF0          mov esi,eax
00555BF0  |.  83C4 08       add esp,0x8
00555BF3  |.  85F6          test esi,esi
00555BF5  |.  75 45         jnz short 宝宝取名.00555C3C
00555BF7  |.  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
00555BFB  |.  52            push edx                                 ; /String = "Ph"
00555BFC  |.  FF15 9C336300 call dword ptr ds:[<&KERNEL32.lstrlenA>] ; \lstrlenA
00555C02  |.  8D7404 13     lea esi,dword ptr ss:[esp+eax+0x13]
00555C06  |.  EB 37         jmp short 宝宝取名.00555C3F
00555C08  |>  8D57 4C       lea edx,dword ptr ds:[edi+0x4C]
00555C0B  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
00555C0F  |.  52            push edx                                 ;  宝宝取名.004A0003
00555C10  |.  E8 FD4B0C00   call 宝宝取名.0061A812
00555C15  |.  8B4424 08     mov eax,dword ptr ss:[esp+0x8]
00555C19  |.  8B48 F8       mov ecx,dword ptr ds:[eax-0x8]
00555C1C  |.  85C9          test ecx,ecx
00555C1E  |.^ 0F85 2AFFFFFF jnz 宝宝取名.00555B4E
00555C24  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
00555C28  |.  C78424 1C0200>mov dword ptr ss:[esp+0x21C],-0x1
00555C33  |.  E8 A14A0C00   call 宝宝取名.0061A6D9
00555C38  |.  33C0          xor eax,eax
00555C3A  |.  EB 43         jmp short 宝宝取名.00555C7F
00555C3C  |>  C606 00       mov byte ptr ds:[esi],0x0
00555C3F  |>  68 AC7EF900   push 宝宝取名.00F97EAC                       ;  UNICODE " "
00555C44  |.  56            push esi
00555C45  |.  FFD3          call ebx                                 ;  宝宝取名.00544A50
00555C47  |.  8B4424 10     mov eax,dword ptr ss:[esp+0x10]
00555C4B  |.  50            push eax
00555C4C  |.  56            push esi
00555C4D  |.  FFD3          call ebx                                 ;  宝宝取名.00544A50
00555C4F  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
00555C53  |.  55            push ebp                                 ; /ShowState = SW_SHOW
00555C54  |.  51            push ecx                                 ; |CmdLine = 0000376E ???
00555C55  |.  FF15 6C336300 call dword ptr ds:[<&KERNEL32.WinExec>]  ; \WinExec
00555C5B  |.  8BF0          mov esi,eax
00555C5D  |>  33D2          xor edx,edx                              ;  宝宝取名.004A0003
00555C5F  |.  83FE 20       cmp esi,0x20
00555C62  |.  0F9FC2        setg dl
00555C65  |.  8D4C24 10     lea ecx,dword ptr ss:[esp+0x10]
00555C69  |.  8BF2          mov esi,edx                              ;  宝宝取名.004A0003
00555C6B  |.  C78424 240200>mov dword ptr ss:[esp+0x224],-0x1
00555C76  |.  E8 5E4A0C00   call 宝宝取名.0061A6D9
00555C7B  |.  5D            pop ebp                                  ;  0012E9E0
00555C7C  |.  8BC6          mov eax,esi
00555C7E  |.  5B            pop ebx                                  ;  0012E9E0
00555C7F  |>  8B8C24 140200>mov ecx,dword ptr ss:[esp+0x214]         ;  宝宝取名.00549A05
00555C86  |.  5F            pop edi                                  ;  0012E9E0
00555C87  |.  5E            pop esi                                  ;  0012E9E0
00555C88  |.  64:890D 00000>mov dword ptr fs:[0],ecx
00555C8F  |.  81C4 18020000 add esp,0x218
5.右键“复制到可执行文件”,然后保存。
5.png
6.重新打开保存后的程序再关闭,弹窗消失了!
上面NOP那个属于笨方法,其实我也只知道NOP,才疏学浅呀。幸得Hmily大神指点,又学到了新的知识!

大家碰到这样代码比较多的情况,可以试试Hmily大神提供的方法: 在入口00555AD0那修改成retn简单一些。


感谢Hmily大神!

点评

你可以直接在段首retn。这样比较方便。。 你可以在数据窗口把网址改成吾爱破解论坛,这样不就更好了吗? 还有,麻烦使用代码框,这么看很累  发表于 2016-8-23 11:51

免费评分

参与人数 8热心值 +8 收起 理由
yeyulang + 1 谢谢@Thanks!
1066929465 + 1 我很赞同!
wmf09081020 + 1 用心讨论,共获提升!
ChongHom-Hu + 1 用心讨论,共获提升!
jw8013 + 1 才知道退出弹窗要运行后才能破解啊。。。
青年的故事 + 1 用心讨论,共获提升!
KaQqi + 1 你可以直接在段首retn。这样比较方便。。 你可以在数据窗口把网址改成吾爱.
Hmily + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

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

Hmily 发表于 2016-8-23 11:36
赶紧换换你那山寨改版权版的peid了,要么用原版,要么用exeinfope好了。


nop那么多有点累,可以直接在入口00555AD0那修改成retn简单一些。

点评

66666666666666666  发表于 2016-8-23 11:42
KaQqi 发表于 2016-8-23 11:49
你可以直接在段首retn。这样比较方便。。
你可以在数据窗口把网址改成吾爱破解论坛,这样不就更好了吗
 楼主| 醉生梦死. 发表于 2016-8-23 11:42
Hmily 发表于 2016-8-23 11:36
赶紧换换你那山寨改版权版的peid了,要么用原版,要么用exeinfope好了。

一针见血呀!谢谢指点!
LeiSir 发表于 2016-8-23 11:48
离大神这么近,顶一下
 楼主| 醉生梦死. 发表于 2016-8-23 11:51
cqr2287 发表于 2016-8-23 11:49
你可以直接在段首retn。这样比较方便。。
你可以在数据窗口把网址改成吾爱破解论坛,这样不就更好了吗

言之有理。

点评

被H大大抢了沙发………………  发表于 2016-8-23 11:52
1888888 发表于 2016-8-23 12:17
非常有用感谢
dk123456518 发表于 2016-8-23 13:02

非常有用..感谢..
jw8013 发表于 2016-8-23 13:23
学习了的说!
redapple2015 发表于 2016-8-23 13:37
楼主能不能给个软件下载地址?百度一下,不知道下载哪一个?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 10:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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