对webview2 客户端资源爬取

查看 34|回复 0
作者:少年持剑   
某款软件代码和资源的提取,软件是基于webview2 的,网上没有看到webview2相关逆向的教程,所以发个贴记录一下。
简单分析
软件安装后只有一个exe文件,软件打开后界面风格很像一个网页


}%M`A7[JV6543K){Q5AK8A2.png (58.07 KB, 下载次数: 0)
下载附件
2024-5-8 23:38 上传

X64dbg附加软件后,发现它加载了一个edge的dll


ZPAOP7BMTUBS~L]UOPC~L9W.png (87.34 KB, 下载次数: 0)
下载附件
2024-5-8 23:38 上传

搜索后发现是使用webview2 后会使用的一个
EmbeddedBrowserWebView.dll

WebView2
WebView2控件使用微软的Edge作为渲染引擎,WebView2允许你在本地App里面嵌入web相关的技术(例如HTML,CSS和JavaScript)。
既然是web就要看能不能打开开发者工具了,进入微软webview2开发者文档,可以看到提供了一个OpenDevToolsWindow函数来打开开发者工具


7~8%`)IA`MEC7](5ZML4J{4.png (50.74 KB, 下载次数: 0)
下载附件
2024-5-8 23:39 上传

IDA 打开EmbeddedBrowserWebView.dll ,加载符号文件,查看OpenDevToolsWindow,可以看到它是embedded_browser_webview_current下的一个虚函数


J@I@UD3QOB{5~BM}HSL2B42.png (50.18 KB, 下载次数: 0)
下载附件
2024-5-8 23:40 上传

查看微软提供的webview2的代码示例Win32_GettingStarted,可以看到它调用了一个Navigate函数来访问页面


EG)XJ3101Q2LELI(9`(HGIJ.png (35.69 KB, 下载次数: 0)
下载附件
sam
2024-5-8 23:42 上传

Navigate函数也是embedded_browser_webview_current下的一个虚函数,这里我通过修改虚表中Navigate的地址指向,
EmbeddedBrowserWebView.dll text段末尾空闲位置调用OpenDevToolsWindow


MOX17G`B0DN]EZZ8PBRP%TN.png (27.91 KB, 下载次数: 0)
下载附件
2024-5-8 23:42 上传

X64dbg 打上补丁 ,替换dll
这时候开发者工具就会弹出来了。


U6(DN@L{QX2R8S089G9RK}F.png (49.65 KB, 下载次数: 0)
下载附件
2024-5-8 23:45 上传

代码和资源提取
在开发者工具的源代码tab 导出所有的js文件和其它资源文件


R(KS@FS4B_[$R@G(_D067SQ.png (54.7 KB, 下载次数: 0)
下载附件
2024-5-8 23:47 上传

并记下它的虚拟域名
环境搭建
在之前的Win32_GettingStarted gitclone下来,使用SetVirtualHostNameToFolderMapping设置虚拟域名并Navigate调用


QV4E1P[$~(@QRJIZINCQ6ZO.png (67.77 KB, 下载次数: 0)
下载附件
2024-5-8 23:49 上传

编译运行后开发者工具中会有几个报错。根据工具报错的提示,到正常软件的开发者工具获取正常环境就行了。


}))M)GVQKL}QMJ6[}7GL$H8.png (194.53 KB, 下载次数: 0)
下载附件
tihuan
2024-5-8 23:58 上传

与开发者的工具的本地覆盖相比,提取出代码后js更容易修改和稳定,而且c++提供的操作也会更灵活。
EmbeddedBrowserWebView.dll 文件位于 C:\Program Files (x86)\Microsoft\EdgeWebView\Application\124.0.2478.80\EBWebView\x64  目录下,不同版本应该不通用

EmbeddedBrowserWebView.7z
(1.58 MB, 下载次数: 0, 售价: 2 CB吾爱币)
2024-5-8 23:51 上传
点击文件名下载附件
修改后
售价: 2 CB吾爱币         [记录]
[购买]
下载积分: 吾爱币 -1 CB

下载次数, 下载附件

您需要登录后才可以回帖 登录 | 立即注册

返回顶部