欢迎来到皮皮网网站!

【tp外卖源码】【letcms正版源码】【来此加密源码】frida编译源码_frida 编译

时间:2024-11-30 03:23:56 来源:https php源码

1.Android 逆向安全行业前景如何?
2.Frida常用api大全
3.关于Cocos2dx-js游戏的编编译jsc文件解密
4.详解Hook框架frida,让你在逆向工作中效率成倍提升
5.欲知己之所防,译源先知彼之所攻——论Hook 技术的编编译攻防对抗
6.FartExt超进化之奇奇怪怪的新ROM工具MikRom

frida编译源码_frida 编译

Android 逆向安全行业前景如何?

       Android逆向工程是指对已发布的Android应用进行分析和研究,揭示其底层实现原理、译源业务逻辑、编编译源代码以及恶意行为等。译源tp外卖源码这项工作对应用安全性至关重要,编编译能帮助开发者识别和修复漏洞,译源提高应用安全性和稳定性。编编译逆向工程通常包括反编译、译源分析应用代码、编编译知识运用以及解密应用数据等步骤。译源

       随着移动应用的编编译普及,逆向工程的译源重要性日益凸显。具备相关技能的编编译专业人才将变得越来越受欢迎和需求。在学习Android逆向时,基础技能的掌握至关重要。以下为学习路线整理:

       Smali指令

       加壳与脱壳

       Xposed框架

       Frida

       抓包

       加密与解密算法

       参考学习笔记:[链接](qr.cn/CQ5TcL)

       Android逆向工程的前景广阔。随着技术的发展和应用安全性的提高,对专业技能的需求将持续增加。了解Android逆向与安全的学习路线,掌握关键知识点,将有助于提升个人竞争力,并在该领域取得成功。

Frida常用api大全

       完整内容及源码关注公众号:ReverseCode,发送冲

       静态函数使用方式为 "use",而动态函数则通过 "choose" 来调用。

       在修改变量时,静态变量使用 "use",动态变量则使用 "choose"。

       构造函数的主动调用可以使用Hook,枚举类的所有方法则需要遍历类的每个成员函数。

       当方法名被混淆时,可以使用编码后的字符串hook,进行打印类名。如遇到特殊不可见字符,使用编码后的字符串进行hook。

       通过wallbreaker可以枚举所有类,获取指定包下所有类的接口实现。在多个ClassLoader环境下,可以枚举指定类所有关联的接口实现和父子类关系。

       Hook Char&ByteHook、letcms正版源码MapHook、重载Hook、内部类Hook、匿名类Hook、枚举类Hook,以及动态加载dex都是Frida中常用的方法。

       在经常遇到加壳app的情况下,可能无法正确找到正常加载app类的classloader,这时可以使用动态加载dex的方法解决。

       调用栈的打印可以帮助我们跟踪类的调用路径,手动注册类Hook可以在特定场景下实现功能。然而,如果在主线程运行时出现错误,如on a thread that has not called Looper.prepare(),需要进行适当的错误处理。

       在过滤打印时,有时需要禁止退出。修改设备参数请求调用栈上下文时,需要确保正确使用Context。

       RPC(Remote Procedure Call)是另一种调用远程服务的方法,通常需要进行强制类型转换以确保数据的正确传输。

       常用算法如base编码,可以使用常用转换模板进行快速实现。

       本文由博客一文多发平台 OpenWrite 发布!

关于Cocos2dx-js游戏的jsc文件解密

       上期关于Cocos2dx-js游戏的jsc文件解密教程引发了一些疑问,本文将解答一些常见问题。

       首先,我们通过CocosCreator开发工具构建并编译一个案例js工程,发现游戏中存在脚本加密选项。构建后,得到一个简单的样本APK。在APK中,我们通过Jadx-gui工具解析Java层源码,关注assets目录下二进制源代码的加载情况。在入口Cocos2dxActivity的onLoadNativeLibraries函数中,我们找到了加载libcocos2djs.so文件的步骤,该文件位于AndroidManifest.xml中。

       初步分析显示,加载Assets目录资源的操作不在Java层进行。接着,我们参考“jsc反编译工具编写探索之路”一文,来此加密源码将注意力转移到libcocos2djs.so文件上。在Cocos2dx源码中,我们发现其使用的是xxtea加密和解密算法,与Cocos2dx-lua的加密解密过程类似。

       在游戏实例分析部分,我们以两个游戏案例为例进行解密。对于游戏A,通过十六进制编辑器搜索libcocos2djs.so文件中的Cocos Game字符串,未发现相关信息。使用IDA分析工具对libcocos2djs.so进行深入研究,发现导出函数名清晰,没有添加额外的安全手段。通过搜索xxtea / key相关函数,我们找到了几个相关函数。在jsb_set_xxtea_key函数中,我们尝试直接设置key值,并发现一个可疑的参数v,用于解密jsc文件。通过回溯该函数的调用路径,我们成功获取了Key值,并成功解密游戏文件。

       对于游戏B,虽然Key值不像游戏A那样明文显示,但通过搜索附近的字符串,我们发现可疑的Key值与常规的Cocos Game字符串共存。尝试使用此Key值解密游戏文件,同样取得了成功。对比游戏A和游戏B的关键代码,我们发现密匙都在applicationDidFinishLaunching函数内部体现。此函数在Cocos2d-x应用入口中,当应用环境加载完成时回调。理解CocosCreator构建项目的过程后,我们知道游戏应用环境加载完毕后,该函数内部将Key值传入解密函数中,解密函数将jsc文件转换为js文件,并拷贝到内存中,游戏开始调用js文件,进入游戏界面。

       在其他关键函数的分析中,我们注意到在xxtea_decrypt函数中存在memcpy和memset操作,表明在进行内存拷贝数据。短信机源码通过CocosCreator源代码jsb_global.cpp文件,我们得知传入xxtea_decrypt函数的第三个参数即为解密的Key值。因此,我们可以通过Hook libcocos2djs.so文件加载时的xxtea_decrypt函数来获取Key值。使用Frida框架编写简单的js脚本进行Hook操作,可以成功获取Key值。在获取Key值后,可以参照CocosCreator源代码实现解密逻辑,或者利用封装好的解密程序进行文件解密。

       最后,对于解密工具的选择,我们推荐使用一些已封装的加解密程序,例如jsc解密v1.,它能够满足当前Cocos2dx版本的文件加解密需求,并提供较为简单的操作方法。同时,欢迎各位分享自己的解密方法和见解,共同推动社区的发展。

详解Hook框架frida,让你在逆向工作中效率成倍提升

       详解Hook框架frida,让你在逆向工作中效率成倍提升

       一、frida简介

       frida是一款基于python + javascript的hook框架,支持运行在各种平台如android、ios、linux、win、osx等。主要通过动态二进制插桩技术实现代码注入,收集运行时信息。

       插桩技术分为两种:源代码插桩和二进制插桩。源代码插桩是将额外代码注入到程序源代码中;二进制插桩则是将额外代码注入到二进制可执行文件中。其中,静态二进制插桩在程序执行前插入额外代码和数据,生成永久改变的可执行文件;动态二进制插桩则在程序运行时实时插入额外代码和数据,对可执行文件无永久改变。

       二、frida的安装

       frida框架包括frida CLI和frida-server两部分。frida CLI是用于系统交互的工具,frida-server则用于目标机器上的代码注入。

       1. frida CLI安装要求包括系统环境(Windows、macOS、museartai绘画源码GNU/Linux)、Python(最新3.x版本)等。通过pip安装frida CLI,frida CLI是frida的主要交互工具。

       2. 分别下载frida-server文件(格式为frida-server-(version)-(platform)-(cpu).xz),并根据设备类型选择对应的版本。下载文件后解压,将frida-server文件推送到Android设备,添加执行权限并运行(需要root权限)。

       3. frida还提供了其他工具,如frida-ps用于列出进程,frida-trace、frida-discover、frida-ls-devices、frida-kill等。这些工具用于不同场景,具体使用可参考frida官网。

       三、frida Hook实战

       通过制作类似微信抢红包的插件来演示frida的使用。首先拦截微信信息持久化到本地的接口(com.tencent.wcdb.database.SQLiteDatabase的insert()方法),解析获取每条信息的内容、发送者等信息。

       抢红包流程分析:点击打开红包时,执行请求(ad类)发送抢红包的请求。需要的参数包括头像、昵称、发送者信息等,参数主要来自luckyMoneyReceiveUI.kRG类。通过解析解析参数,发送com.tencent.mm.plugin.luckymoney.b.ag类请求,并获取timingIdentifier,最后发送com.tencent.mm.plugin.luckymoney.b.ad类请求即可抢到红包。

       四、模拟请求

       分析微信的请求发送方法,通过frida实现请求发送。主要通过反射获取发送请求的Network,然后调用其a方法发送请求。解析红包信息,发送ag请求并获取timingIdentifier,改造SQL的insert方法,实现抢红包插件。

       附录

       实验环境包括微信版本6.6.7、frida版本.0.、frida-server版本、Android版本7.0等。ISEC实验室作为网络安全服务提供商,专注于网络安全技术研究,提供全面的网络安全服务和解决方案。

欲知己之所防,先知彼之所攻——论Hook 技术的攻防对抗

       矛盾的同一性与斗争性原理几乎适用于所有攻防对抗。

       在设备指纹攻防对抗中,当硬件属性不再作为设备指纹的唯一属性时,为了保证设备指纹的唯一性,需要在硬件ID的基础上增加更多识别标准以及动态可变的算法。黑灰产在尝试绕过设备指纹进行攻击时,会通过“伪装”自己的设备来实现攻击目的,比如让App认为设备是一个新手机,或伪造受害者的手机进行身份认证。然而,有矛必有盾,安全研究者同样会利用Hook技术来对抗此类攻击。

       Hook技术是一门广泛用于计算机攻防对抗的技术,它能够监视系统或进程中的事件消息,截获并处理目标窗口的消息。使用Hook技术的人可以被视为“钓鱼人”,而Hook技术则相当于“渔具”,系统中的事件消息就像“游鱼”,钓鱼人通过Hook技术将其捕获(Hook技术一般是有指向性的),然后对事件进行修改,使之继续正常运行。Hook技术常用于热补丁上线、API劫持、软件破解等技术操作。

       在Android平台,Hook框架主要分为三类:针对Native层的Hook框架、针对Java层的Hook框架(如Xposed)以及全平台Hook的Frida框架。针对移动设备的Hook技术主要以手机为主,其中Android的Hook框架主要包括bhook、xhook、yahfa等针对Native层的框架,以及Xposed类框架和Frida框架。

       在攻防对抗中,如何利用Hook技术进行攻击?首先,需要对目标应用进行反编译分析,了解其功能和内部逻辑。然后,编写Hook插件,修改目标应用的关键方法,实现对特定参数的控制,从而获取其MD5值等敏感信息。在实现Hook攻击时,需要遵循特定的前置条件和步骤,如创建xposed_init文件、配置AndroidManifest.xml、编写Xposed Hook模块等。

       针对Hook攻击的防御方式同样重要。除了通过检测ClassLoader来识别Xposed框架的使用,还可以采用其他传统防御方法。顶象产品具备独有的对抗方式,包括反检测、反对抗技术,可以更准确地识别Hook风险。在攻防对抗方面,安全厂商需要持续不断的努力,以保持技术的领先性。

       顶象技术已实现对安卓、iOS、H5、小程序等全方位的安全保护,有效防御调试、注入、多开、内存Dump、模拟器、二次打包和日志泄露等攻击威胁。顶象产品还支持对iOS免源码加固,并具备“蜜罐”功能,保护Android 种数据和文件,提供7种加密形式。

FartExt超进化之奇奇怪怪的新ROM工具MikRom

       本文为看雪论坛优秀文章

       在对ROM进行深入定制的探索中,作者分享了自己开发的两款工具:FartExt和MikRom。FartExt是一个自动脱壳机,基于FART主动调用的思想,对特定的抽取壳进行优化处理。其核心功能是对FART进行简单优化,但由于当时实现功能并不完善,只短暂提供下载地址后便删除。现在,FartExt的开源代码已发布在GitHub上。

       随着对ROM定制的深入思考,作者尝试将FartExt的原理应用到更广泛的场景,例如构建ROM级别的打桩工具,或通过应用读取配置文件实现网络流量拦截、JNI函数调用追踪等功能。基于这些想法,MikRom应运而生。MikRom提供了一系列功能,包括内核修改、USB调试默认连接、脱壳(支持黑名单、白名单过滤、主动调用链优化)、ROM打桩、frida持久化、反调试、Java函数trace、内置dobby注入、so和dex注入等。目前,MikRom的开源代码在GitHub上发布。

       为了使MikRom的配置管理更方便,作者开发了一个界面化的工具MikManager,允许用户通过图形界面进行操作。MikManager将设置保存到文件中,MikRom在启动时读取并解析这些设置。MikManager界面简洁,如有需要,用户也可自行开发界面管理工具。

       开发MikRom及其相关工具是一项耗时而复杂的工作,作者记录了整个开发历程,分享了在试错过程中找到的解决方案。在功能实现和界面设计上,作者表示仍存在不足,欢迎其他开发者指出错误或提供改进意见。在考虑法律和风险问题时,作者表示愿意进行修改。

       在ROM编译版本的选择上,作者最初使用了aospr2源码进行修改编译。后有建议改进界面,于是参考hanbingle老师的Fart脱壳王使用的rom,选择了PixelExperience进行修改。编译时遇到了错误,需要对build文件进行调整。最终,作者使用了marlin版本进行编译,并在pixel XL上测试。

       在配置管理优化方面,早期的FartExt配置文件存储在/data/local/tmp中,由应用启动过程解析。然而,随着配置管理的复杂性增加,作者引入了一个系统服务来管理配置文件,将文件落地到/data/system目录中,供所有应用访问。这解决了不同应用访问配置文件的权限问题。

       了解更多详情,请阅读:FartExt超进化之奇奇怪怪的新ROM工具MikRom

Android app的加壳和脱壳详解

       了解Android应用的加壳与脱壳技术,我们首先需要理解APK文件结构与DEX文件原理。APK文件是Android应用的压缩包格式,解压后包含dex文件,这是Dalvik虚拟机执行的字节码文件。Zygote作为虚拟机进程,每次启动应用时生成子进程执行该应用。加壳技术在二进制程序中植入代码,加密、隐藏或混淆原始内容,以防止反编译。加壳后的APK在运行时,首先解压并获取编译信息,运行加密的DEX文件。

       实现加壳,主要是为保护内容加密、隐藏或混淆,使得反编译难以直接获取原始代码。脱壳则是反过程,目标是恢复原始代码。脱壳需要解压并定位到真实DEX文件,通常是在解密后执行脱壳,然后dump出明文状态的DEX文件。实现脱壳的关键是获取解密后DEX文件的起始地址与大小。

       常用脱壳方法包括基于Frida的工具,如Frida-Dexdump,帮助定位并dump脱壳后的DEX文件。此工具需要配合frida-server在模拟器或手机上运行,并利用frida-ps查看目标应用。接着通过指定应用包名调用Frida-Dexdump工具进行脱壳。脱壳后的文件可能需要通过合并工具(如jadx)整合为一个文件,并最终使用如jd-gui进行查看。另外,Fart、Youpk、BlackDex等工具也提供了不同的脱壳解决方案,覆盖了不同条件与需求,包括修改Android源码、基于ART的主动调用、无需root的脱壳等。

       每种脱壳工具都有其优势与局限性,如Frida-Dexdump与Frida环境结合简单,但可能受限于目标应用的具体保护方式;Fart与Youpk则需要特定条件与环境,但提供了更强大的脱壳能力;BlackDex则以其简便易用、无需root等特性,成为一种通用脱壳工具。然而,无论使用何种脱壳工具,都需要基于深入理解DEX文件结构与保护机制,以及对特定工具的特性与使用方法的掌握。

更多相关资讯请点击【综合】频道>>>