乐易论坛-乐易网易语言培训教程火山PC视窗中文编程交流论坛

 找回密码
 立即注册

手机号登录

用手机号号登陆

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

办理VIP,定制软件,报名培训联系QQ请牢记揰掵佲的QQ号1615457736 1615457734 其他都是骗子易语言0基础入门课程
易语言汇编快速入门课程《64位某信Hook技术实战基础教程》【投稿课程】百日Js加密分析实战课程(无密下载)
【强烈推荐】《火山视窗0基础入门系列课程》《64位某信Hook技术实战进阶教程》【投稿课程】《0基础x64位游戏内存辅助开发教程 》
《火山视窗POST基础入门课程》《64位某信数据库操作课程》【投稿课程】广告位招租联系QQ1615457736
查看: 18630|回复: 14

[图文教程] HOOK屏蔽某网游结束广告的分析与实现

[复制链接]

[图文教程] HOOK屏蔽某网游结束广告的分析与实现

[复制链接]
已绑定手机
尘。
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
470
注册时间
2014-8-18
最后登录
1970-1-1

勋章墙

2016-1-25 10:22:03 | 显示全部楼层 |阅读模式
说明:因为新版的pp广告有时候不会弹出来,调试起来有点麻烦,为了方便,我用的是脱机版本的PP来调试,网络版的找法其实是一样的
OD附加上游戏

下CreateProcessA CreateProcessW断点
关闭游戏之后发现,CreateProcessW断点触发了,


0012EF88   757C55C1  /CALL 到 CreateProcessW 来自 shell32.757C55BB
0012EF8C   09B5FED4  |ModuleFileName = "E:\Game\跑跑单机版\M01\AdBalloonExt.exe"
0012EF90   09B5AD60  |CommandLine = ""E:\Game\跑跑单机版\M01\AdBalloonExt.exe"
游客,如果您要查看本帖隐藏内容请回复
490 190 60 true"
0012EF94   00000000  |pProcessSecurity = NULL
0012EF98   00000000  |pThreadSecurity = NULL
0012EF9C   00000000  |InheritHandles = FALSE
0012EFA0   04080414  |CreationFlags = CREATE_SUSPENDED|CREATE_NEW_CONSOLE|CREATE_UNICODE_ENVIRONMENT|CREATE_DEFAULT_ERROR_MODE|80000
0012EFA4   00000000  |pEnvironment = NULL
0012EFA8   09B5DD50  |CurrentDir = "E:\Game\跑跑单机版\M01"
0012EFAC   0012EFF0  |pStartupInfo = 0012EFF0
0012EFB0   09B5E220  \pProcessInfo = 09B5E220

很明显,pp就是调用CreateProcessW来打开广告的进程
如果普通程序的话我们可以对CreateProcessW做一个HOOK,然后过滤掉AdBalloonExt.exe即可,但是这样感觉没啥意思,而且这样直接HOOKAPI也容易被游戏检测到
看看游戏调用的过程


00A8D140    55              push ebp
这个函数是PP主模块内最后一次调用的地方
00A8D1C0    C745 C0 3C00000>mov dword ptr ss:[ebp-0x40],0x3C
00A8D1C7    C745 CC 9C5DC70>mov dword ptr ss:[ebp-0x34],KartRide.00C75D9C       ; UNICODE "open"
00A8D1CE    C745 D0 60F9CB0>mov dword ptr ss:[ebp-0x30],KartRide.00CBF960       ; UNICODE "AdBalloonExt.exe"
00A8D1D5    8D4D FC         lea ecx,dword ptr ss:[ebp-0x4]
00A8D1D8    E8 93A498FF     call KartRide.00417670
在这里我们找到如下的代码,把两个字符串压入堆栈了,直接把这个函数Retn掉是可以的,但是因为这是网游,有检测,直接修改代码区还要过检测啥的,不太建议采用这种硬碰硬的办法
这里还有一个办法就是把00C75D9C 或者00CBF960修改掉,但是这样游戏关闭之后会弹出一个错误的提示框,这里也不是我们想要的结果
继续往下看
00A8D1DD    8945 D4         mov dword ptr ss:[ebp-0x2C],eax
00A8D1E0    C745 DC 0500000>mov dword ptr ss:[ebp-0x24],0x5
00A8D1E7    C745 C4 4001000>mov dword ptr ss:[ebp-0x3C],0x140
00A8D1EE    8D45 C0         lea eax,dword ptr ss:[ebp-0x40]
00A8D1F1    50              push eax
00A8D1F2    FF15 F063D800   call dword ptr ds:[0xD863F0]                        ; shell32.ShellExecuteExW
这里调用了ShellExecuteExW这个API,这个api有一个作用就是打开一个程序
PP估计就是调用此api来运行AdBalloonExt.ex的
而这里00A8D1F2    FF15 F063D800   call dword ptr ds:[0xD863F0]  正好给我们创造了一个HOOK的条件
可以直接修改0xD863F0内保存的地址,让他指向我们自己构造的函数即可
回车进去
757D1E46 >  8BFF            mov edi,edi
757D1E48    55              push ebp
757D1E49    8BEC            mov ebp,esp
757D1E4B    53              push ebx
757D1E4C    56              push esi
757D1E4D    8B75 08         mov esi,dword ptr ss:[ebp+0x8]
757D1E50    833E 3C         cmp dword ptr ds:[esi],0x3C
757D1E53  ^ 0F85 66FDFEFF   jnz shell32.757C1BBF
757D1E59    6A 00           push 0x0
757D1E5B    68 A81E7D75     push shell32.757D1EA8                               ; UNICODE "MaximizeApps"
757D1E60    68 18148075     push shell32.75801418                               ; UNICODE "Software\Microsoft\Windows\CurrentVersion\Explorer"
757D1E65    E8 46F60000     call <jmp.&SHLWAPI.#630>
757D1E6A    85C0            test eax,eax
757D1E6C    0F85 A6881900   jnz shell32.7596A718
757D1E72    57              push edi
757D1E73    8B7E 04         mov edi,dword ptr ds:[esi+0x4]
757D1E76    F7C7 00011000   test edi,0x100100
757D1E7C    0F84 8B020000   je shell32.757D210D
757D1E82    56              push esi
757D1E83    E8 3F000000     call shell32.757D1EC7
757D1E88    897E 04         mov dword ptr ds:[esi+0x4],edi
757D1E8B    5F              pop edi
757D1E8C    8BD8            mov ebx,eax
757D1E8E    53              push ebx
757D1E8F    FF15 14117B75   call dword ptr ds:[<&API-MS-Win-Core-ErrorHandling->; kernel32.SetLastError
757D1E95    85DB            test ebx,ebx
757D1E97  ^ 0F85 0FFDFEFF   jnz shell32.757C1BAC
757D1E9D    33C0            xor eax,eax
757D1E9F    40              inc eax
757D1EA0    5E              pop esi
757D1EA1    5B              pop ebx
757D1EA2    5D              pop ebp
757D1EA3    C2 0400         retn 0x4
函数末尾是Retn 0x4,记录一下,下面是代码的编写
大概流程可以是这样,
a.申请3字节,写入Retn 0x4这行汇编
b.把该内存地址写入0xD863F0

就这样三行代码,屏蔽PP结束广告的效果就可以实现了
当然你要做特征码搜索也是可以的,


End
QQ 305882211

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2易币 +10 金钱 +7 收起 理由
yyjpcx + 2 +152+2 是什么意思?
揰掵佲 + 10 + 5 乐易编程网论坛祝给位216年天天开心!

查看全部评分

回复

使用道具 举报

已绑定手机
weizhuojun
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
340
注册时间
2016-5-3
最后登录
1970-1-1

勋章墙

2017-4-22 13:00:49 | 显示全部楼层
太棒了,感谢楼主,Mrak一下太棒了,感谢楼主,Mrak一下
回复

使用道具 举报

已绑定手机
已实名认证
yyjpcx
等级头衔

等級:程序制作者

Rank: 6Rank: 6

积分成就
易币
贡献
主题
精华
金钱
积分
1295
注册时间
2014-11-28
最后登录
1970-1-1

勋章墙

2016-1-25 20:32:00 | 显示全部楼层
出个视频吧     好学习
回复

使用道具 举报

hpwbgame
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
230
注册时间
2016-4-17
最后登录
1970-1-1

勋章墙

2016-4-18 02:03:19 | 显示全部楼层
很想学习下收费系统的软件广告 hook
回复

使用道具 举报

已绑定手机
已实名认证
揰掵佲
等级头衔

等級:乐易运营组

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分成就
易币
贡献
主题
精华
金钱
积分
24314
注册时间
2014-8-2
最后登录
1970-1-1

勋章墙

2016-1-25 10:28:35 | 显示全部楼层
感谢分享!
回复

使用道具 举报

已绑定手机
已实名认证
有妖气
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
365
注册时间
2014-11-22
最后登录
1970-1-1

勋章墙

2016-1-25 10:33:12 | 显示全部楼层
666666666666666666
回复

使用道具 举报

已绑定手机
Fallin丶out
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
864
注册时间
2014-8-24
最后登录
1970-1-1

勋章墙

2016-1-25 21:55:22 | 显示全部楼层
学习,hook
回复

使用道具 举报

hkoit
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
602
注册时间
2015-10-14
最后登录
1970-1-1

勋章墙

2016-1-25 21:58:04 | 显示全部楼层
希望大家踊跃发言,我顶先












回复

使用道具 举报

已绑定手机
Arsing
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
392
注册时间
2016-1-22
最后登录
1970-1-1

勋章墙

2016-1-25 22:21:14 | 显示全部楼层
膜拜一下大神 ,学习了
回复

使用道具 举报

已绑定手机
已实名认证
qw1417
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
215
注册时间
2016-2-2
最后登录
1970-1-1

勋章墙

2016-2-2 17:33:41 | 显示全部楼层
怎么hook呢???
回复

使用道具 举报

已绑定手机
左手爱学习
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
258
注册时间
2016-5-1
最后登录
1970-1-1

勋章墙

2016-6-9 23:36:29 | 显示全部楼层
沙发路过了
回复

使用道具 举报

如果懒得打字,请选择右侧内容快捷回复 提醒:以任何方式进行『恶意灌水』的行为,进行封号处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

热点推荐上一条 /5 下一条

QQ|网站地图|手机版|小黑屋|乐易论坛-乐易网 | 湘ICP备19007035号

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表乐易立场!

娄底市乐易网络科技有限公司声明:乐易原创培训课程版权均为我公司所有,未经许可,不得擅自翻录,盗版,破解本站课课程,我们将保留法律诉讼的权利

GMT+8, 2025-7-6 19:20 , Processed in 0.076740 second(s), 79 queries .

Powered by Discuz! X3.4

Copyright © Tencent Cloud.

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