专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
今天看啥  ›  专栏  ›  看雪学苑

记录一次**App H5逆向

看雪学苑  · 公众号  · 互联网安全  · 2024-10-11 17:59

主要观点总结

本文介绍了文章对d*版本5.31.1的逆向工程过程,首先使用frida打开webview调试,确定了目标接口,然后分析了混淆的JavaScript代码,通过一系列调试技巧定位了加密参数生成的位置,并还原了算法。在解密过程中,作者发现了对浏览器环境的监测,建议对关键字符串进行加密,并取消无限debugger的防护。

关键观点总结

关键观点1: 使用frida进行webview调试

文章首先介绍了使用frida进行webview调试的过程,确保能够捕获和调试网页。

关键观点2: 分析混淆的JavaScript代码

文章详细描述了如何分析混淆的JavaScript代码,包括使用各种调试技巧。

关键观点3: 定位加密参数生成的位置

文章描述了如何通过调试技巧定位加密参数生成的位置,这是解密过程的关键步骤。

关键观点4: 还原算法

文章详细解释了如何还原加密算法,这是逆向工程的核心部分。

关键观点5: 对浏览器环境的监测

在解密过程中,作者发现了对浏览器环境的监测,这是防止代码在node中运行的机制。

关键观点6: 对关键字符串进行加密

文章建议对关键字符串进行加密,以增加代码的安全性。

关键观点7: 取消无限debugger的防护

文章建议取消无限debugger的防护,使代码更容易被定位到关键函数。


文章预览

1.调试前第一部曲 使用frida打开webview调试 ◆d*版本 5.31.1 根据历来活动界面经验,各大app使用webview进行活动的展开。 使用frida hookd*app开启webview调试: console.log( "脚本加载成功" ); function main(){ Java.perform(function(){ var WebView = Java.use( 'android.webkit.WebView' ); WebView.$ init .overload( 'android.content.Context' ).implementation = function(a){ var result = this .$ init (a); this .setWebContentsDebuggingEnabled( true ); return result; } WebView.$ init .overload( 'android.content.Context' , 'android.util.AttributeSet' ).implementation = function(a,b){ var result = this .$ init (a,b); this .setWebContentsDebuggingEnabled( true ); return result; } WebView.$ init .overload( 'android.content.Context' , 'android.util.AttributeSet' , 'int' ).implementation = function(a,b,c){ v ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览