由于Python开源的特性,在一些商业场景下,若不想将源码暴露,可通过混淆、编译为pyc或so(Windows下为pyd)文件等方法起到保护源码的效果。其中,将源码编译为so文件是常用且较好的一种保护方法。
本博客用于记录下 360 加固保 加固应用流程 ; ( 上一次加固还是一年前 , 过程全忘了 o(╥﹏╥)o )
Android开发或者联调中经常会使用一些工具,今天就简单总结一下。 adb 开发调试第一神器,具体的在这里不做太多介绍,之前专门写过两篇文章。 下载地址: 无需安装,位于Android SDK的platform-tools文件夹下,增加环境变量即可使用 adb 基础用法 介绍一些常用的adb命令,例如install、push这些:点击查看 adb 进阶用法 介绍一些相对复杂的adb命令,主要是adb shell相关的:点击查看 adb shell input 重点介绍adb shell input的用法,
如今移动互联网已经完全融入到我们的生活中,各类APP也是层出不穷,因此对于安卓APP安全的研究也尤为重要。本文通过对一款安卓APP的破解实例,来引出对于APP安全的探讨。(本人纯小白,初次接触安卓逆向一星期,略有体验,在这里分享一下)
开无痕,开控制台, debugger 右键选择 :never pause here ,先这样瞧一瞧
DVM指的是Dalvik虚拟机,运行的是.dex文件。Dalvik虚拟机在Android4.4及以前使用的都是Dalivk虚拟机。APK在打包过程中先通过javac编译出.class文件,再使用dx工具处理成.dex文件,此时Dalvik虚拟机才可以解析执行。另外单个dex文件的最大为65535KB,超出需要使用两个及以上的dex文件,这导致在启动时会有个合包的过程,使得apk启动慢。
学xi Q国 app信息流使用的tcp协议传输,使用 fiddler、charles这些对http/https协议抓包的工具是获取不到数据的。
下载地址: https://ibotpeaches.github.io/Apktool/
在过去,当我们想要了解一个 app 内部运作细节时,往往先通过 ApkTool 反编译 APK,生成 smali 格式的反汇编代码[1],然后大佬和老手直接阅读 smali 代码,适当的进行修改、插桩、调试,经过一定的经验和猜想,理解程序的运行逻辑和加解密细节,比如如下的 smali 代码。
Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。
朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把“亿人安全“设为星标”,否则可能就看不到了啦
最近因为省赛快来了,因此为实验室的小伙伴准备了这次比赛,总共10道题目,考虑到大多数小伙伴都刚从大一升到大二,因此整体难度不高,当然有几道难度还是有的。
第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的
Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效。
静态分析工具是指在不运行程序的情况下,通过对程序文件进行源代码分析,从而对程序的安全性、可靠性、性能等进行分析的工具。它可以识别出程序文件中的漏洞,但只能识别出程序文件中的静态漏洞,不能识别出程序在运行中可能出现的动态漏洞。比如apktool、androidkiller、jeb,GDA、smali、jadx等
ida反编译so文件,注意事项:ida版本最好是7.0往上的版本,否则有些so文件反编译之后,f5不能查看伪代码。
众所周知,Ghidra是一个免费的开源软件,可以对包括移动应用程序在内的可执行程序(二进制)进行逆向工程分析。Ghidra支持在多个操作系统平台上安装和使用,包括Windows、Linux和MacOS。
学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里用hook技术hook一些关键函数来计算关键函数的调用参数和调用时长, 从而确定性能问题发生的位置和原因. 但目前没有比较系统的讲解hook的书籍, 所以就系统的了解下逆向分析.
1.我是通过对dvmLoadNativeCode函数下断,分析它执行流程最后到达壳入口(如果您有更好的办法还请告知,感谢中...),函数dvmLoadNativeCode是执行加载so文件的操作。(2.3系统是这个名字),2.3以上系统被名称粉碎了,不过在2.3以上系统中可以在libdvm.so中搜索函数名也是可以找到的,(我当前系统函数名为:_Z17dvmLoadNativeCodePKcP6ObjectPPc)如下图所示:
在安卓开发中,打包发布是开发的最后一个环节,apk是整个项目的源码和资源的结合体;对于懂点反编译原理的人可以轻松编译出apk的源码资源,并且可以修改资源代码、重新打包编译,轻轻松松变成自己的apk或者修改其中一部分窃取用户信息。
本文将介绍Android应用中的native层(C/C++代码编译生成的.so文件)的SO加固方法,以及潜在的破解方式。SO加固旨在防止动态链接库(.so文件)被恶意分析、修改和破解。
目前APP发包上架的流程前,免不了需要对APP应用安全检测这个重要且必不可少的步骤流程,APP应用安全检测大部分采用采购第三方的APP安全检测产品(因为这块技术基础储备),也有部分企业基于开源的移动安全框架(MobSF)进行二次开发APP安全检测产品(采购第三方产品费用太高),也有部分安全团队基于团队的技术储备进行基于逆向第三方APP安全检测产品进行开发自研的APP安全检测产品(采购第三方检测产品)。
在我们以前的文章中,曾经讲过计算斐波那契数列的几种方法,其中基于递归的方法是速度最慢的,例如计算第40项的值,需要36秒。如下图所示:
使用Cython保护Python源代码 **保护您的Python源不受不必要的影响,说起来容易做起来难,因为.pyc字节码是可反编译的,并且混淆很容易被反向工程。我花了一段时间才弄清楚隐藏Python代码的正确方法...... Cython是一个优化的静态编译器,可以将.py模块转换为高性能的C文件,生成的C文件可以毫不费力地编译到本机二进制库中。编译完成后,无法将编译库转换回可读的Python源代码! 1. 安装 Cython pip install cython 2. 添加 hello.pyx 假
首先 Python 是一种面向对象的解释型程序语言,运行 Python 程序时是将 *.py 编译为独有的二进制编码 pyc 文件,然后对 pyc 中的指令进行解释执行,但是对 pyc 文件进行反编译也是比较简单的,可直接反编译为源码。
由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK文件,可以非常容易的得到 近乎源代码质量 的反编译代码。如果不加混淆,相当于直接将源代码拱手送人,内容严密的app权限审核可以说是形同虚设。如果大家想避免自己的成果被别人夺取,然后重新修改策划而额外增加的工作量,那就尽量得自己的Android项目加上混淆吧。
/********************2016年4月23日更新********************************/
之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了。公司项目是32.6M,我给自己的要求就是低于20M。上周花了一个星期瘦身,至于为什么花了一周,主要是svg适配问题我被搞蒙蔽了。然后发现还要改大量代码,想想也就算了,又换了另一种瘦身方法。 很多人是因为这标题而来的,怎么可能,32.6M的居然可以变成13.6M。下面容我慢慢道来。
前言 之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了。公司项目是32.6M,我给自己的要求就是低于20M。上周花了一个星期瘦身,至于为什么花了一周,主要是s
0x00、业务需求 国内133家地方商业银行作为商业领域国外IT厂商和商家必争之地,无论是IT基础设施建设、容灾备份系统建设、还是信息安全建设等,各家银行都做的如火如荼,当然,目前只针对企业级市场,很少有银行愿意接受安全众测,原因很简单,测试过程不可控。 但是IT环境变化的加速度在不断的增快,面临目前严重的安全态势,希望银行也能接受众测这种商业模式,或者由众测小伙伴把自己的测试经验写成PoC代码的形式share给厂商。 测试对象:133家商业银行 0x01、测试流程方法 针对银行的业务接口,为了适应目前移动
在对安卓手机进行取证时,经常需要备份手机的应用程序数据,备份后得到的数据文件为ab格式。虽然大部分的取证软件都可以对ab文件进行分析,但是,有时候你可能需要解析ab文件的文件系统,然后对应用程序数据进行手动分析。ab文件一般分两种,一种是没有加密,这种文件前面有24字节的文件头,文件头包含none标志,文件头之后就是数据;一种是加密的备份文件,它的文件头就比较复杂了,文件头包含AES-256标志。
adb以调试方式打开应用,会出现这界面,说明成功,出现上面页面就可以在JEB3里面进入app的调试
近日,顶象发布《车企App安全研究白皮书》。该白皮书总结了目前汽车公司App所面临的主要技术威胁和合规风险,详细分析了这些风险产生的原因,并提供了相应的安全解决方案。
前面的文章中我们为大家介绍了移动应用安全检测的测试依据、测试方法、和测试内容,本文我们着重分享App安全加固的相关内容。
● NDK Native Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
1、将apk拖进jadx工具反编译,可以看到调用这个函数JNI.getResult,返回值为0就提示wrong。
前言:本文主要介绍了目前App数据传输过程中几种常见的加密方式,以及一些常规的解密手段,并不涵盖并应对所有情况,在实战过程中还须具体情况具体分析,随机应变;同时,也十分欢迎与希望各路大神提出宝贵建议和思路,一起学习和研究。(注:全文中所提到的App仅针对Android App)
python文件的后缀名有:“.py”、“.py3”、“.pyc”、“.pyo”、“.pyd”、“.pyi”、“.pyx”、“.pyz”、“.pywz”、“.rpy”、“.pyde”、“.pyp”、“.pyt”。
昨天在逆向某App的时候,发现有个加密工具类中的native方法是用C语言编写的,隐藏在so文件中。某大佬推荐逆向工具unidbg,能在pc端直接调用so文件中的函数,最终成功解决了问题。
当app进行反编译后修改,再回编译,若出现闪退的情况时,则有可能是由于程序本身已存在签名验证,才会出现闪退,今天分享如何解决因签名验证而出现的闪退现象。
Frida是一款非常强大的框架,其可向Windows、MacOS、Linux、iOS、Android,QNX的应用中注入Javascript,进而拦截应用传输的数据。本文仅使用到其中少部分功能,更多可
專 欄 ❈ Jay,现居重庆,熟悉爬虫、web开发、网络安全,主要从事爬虫领域的相关开发。 Github:https://github.com/juie ❈— 蜘蛛,又叫爬虫,是专门用来批量的爬去网上数据的脚本程序。其实对于一个爬虫程序,爬取数据方面并没有很大难度,最大的难度在于如何突破验证和反爬虫!对于突破反爬虫的方法,这里就不讨论了,今天主要讨论的是解决验证的问题! 对于很多网站里面的有用数据,都会要求客户登陆后方能查看(甚至要求VIP),这时候我们要想获取数据就需要按照规则登陆后才能抓取了,而对于
领取专属 10元无门槛券
手把手带您无忧上云