首页
社区
课程
招聘
[求助]如何通过弹窗找代码
2022-8-7 13:01 5906

[求助]如何通过弹窗找代码

2022-8-7 13:01
5906

有2个问题,一些普通程序的弹窗如何去下断.
1.比如,登录某个程序,会弹出一个对话框提示用户不存在.
但是用调试工具的话,搜索字符串却搜索不出来.
2.游戏内的弹窗如何下断.
比如,英雄联盟这个游戏在游戏中强行退出的时候,弹出一个是否退出的对话框,且有5秒后才可以点击的确定退出按钮.

 

这些代码如何去找呢?


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 2778
活跃值: (2287)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wonghouleong 2022-8-8 09:37
2
0
1.一般程序下MseeageBox相关断点即可,ret处F8就返回到弹窗代码了
2.LOL这种通常是自绘,不大可能再调用MseeageBox,需要根据上下文推敲,比如你下文是退出游戏,那么在exit的相关API下断再向上回朔
雪    币: 4427
活跃值: (3449)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2022-8-8 10:54
3
0
弹窗找代码一般需要了解 有哪些api可以弹窗 然后取api下断

游戏程序都是采用D3D绘制的  一般称为控件 引擎开发人员们通过D3D api封装起来的  游戏控件的遍历网上有教程帖子 
雪    币: 4427
活跃值: (3449)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2022-8-8 11:01
4
0
逆向它没有通杀的绝招  和个人的知识储备有关  对于开发人员来说 每个人的思想都是独立 自由的 所以可以随心所欲 根据自己的喜欢 想法来设计程序 这样在开发界就不会有标准的统一的技术  那么即使你是一个10年 20年的逆向大佬 对于不可控的人们的思想设计的程序 也不是所有都可以被轻松逆向
雪    币: 75
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
悠然39 2022-8-9 08:49
5
0
来学习下,大佬们说的还是比较好理解的。
雪    币: 5638
活跃值: (7267)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
以和爲貴 1 2022-8-9 09:12
6
0
用od看堆栈,或者直接从程序入口点下断点一步一步的调试,找到函数调用点就行了
雪    币: 7
活跃值: (42)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
ThisCha 2022-8-9 10:30
7
0
字符串访问断 一般就能直接断到弹窗call上一层
雪    币: 150
活跃值: (1232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
林动11 2022-8-10 18:20
8
0
今天刚整完,还是技术有待提高.
总结下来就是:对特定语言/平台使用特定工具.
c#/.net平台老老实实用dnspy,用OD半年也找不到关键点.
雪    币: 51
活跃值: (123)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
云清-sky 2022-8-11 09:47
9
0
如果是窗口程序的话,x96dbg直接下断就行,下不下的话可能存在反调试,就是一种技术的对抗了。
雪    币: 90
活跃值: (1011)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
0xffffffff 2023-7-8 17:10
10
0
兄弟解决了吗
雪    币: 150
活跃值: (1232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
林动11 2023-8-5 22:00
11
0
0xffffffff 兄弟解决了吗
没有啊,我的这个提问是为了解决这样的问题的,假设在CSGO游戏中,在摧毁枪械皮肤的时候会有一个弹窗,弹出Yes or No,我没玩过,我不知道实际情况,在这个窗口出来的时候,在这种情况下,肯定是等待这个窗口的返回结果,所以我会看一下所有线程的调用栈.
如果找不到呢,就要分析一下这个弹窗有什么信息.首先断MessageBox,如果断不到,断CreateWindow,考虑是不是用CreateWinodws自己定义的一个弹窗类窗口.如果断不到,那就考虑游戏引擎是直接调用了图形库,directx之类,从这里入手.
还有其他办法,比如这个弹窗可能是某个dll中的一个导出函数,我假设游戏引擎的某个dll会导出这个函数用来创建弹窗,这时候就可以在线程调用堆栈中看到模块和地址
比如在等待用户点击yes no的时候,可能会有一个线程是WaitForSignel处于等待状态,可能是在等待yes no的结果,也可能是其他.
根据不同场景分析不同问题,如果是软件,如果是QT框架就要想到这个弹窗应该是qt模块导出的一个函数,mfc就要断win32api,如果是游戏就要分析游戏引擎是使用了什么方式绘制图形,如果是.net创建窗口,这个我还没有想过.net底层是调用的什么来绘制,希望可以帮到你
游客
登录 | 注册 方可回帖
返回