主要观点总结
本文介绍了文章对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
………………………………