1. ios a静态库 能反编译吗
.a静态库不能进行反编译,反汇编的可能性也极低。
静态库:静态库仅在程序启动时被连接使用,程序运行时将不再需要该静态库。
与静态库相对的是动态库:程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
2. 如何对iOS中使用Objective-C语言编写的二进制文件进行反编译
\\假设文件的地址为a.txt FileInputStream in=new FileInputStream(new File("a.txt")); byte[] buffer=new byte[4096]; int offset=0; while((offset=in.read(buffer)>-1){ //这已经把文件读入到buffer中了,范围为0到offset,你可以做任何处理了 } in.close();
3. ios 开发怎么防止ipa被别人反编译
iOS应用安全风险
1
内购破解
iOS应用需防反编译风险之一:插件法(仅越狱)、iTools工具替换文件法(常见为存档破解)、八门神器修改
2
网络安全风险
iOS应用需防反编译风险之二:截获网络请求,破解通信协议并模拟客户端登录,伪造用户行为,对用户数据造成危害
3
应用程序函数PATCH破解
iOS应用需防反编译风险之三:利用FLEX 补丁软件通过派遣返回值来对应用进行patch破解
4
源代码安全风险
iOS应用需防反编译风险之四:通过使用ida等反汇编工具对ipa进行逆向汇编代码,导致核心代码逻辑泄漏与被修改,影响应用安全
5
面对这些iOS应用存在的风险,iOS应用如何防止被反编译,下面看下iOS应用加密技术
END
iOS应用加密防反编译技术
本地数据加密
iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息
URL编码加密
iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析
网络传输数据加密
iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据
方法体,方法名高级混淆
iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码
程序结构混排加密
iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低
下面是iOS应用加密防反编译前后对比
END
iOS应用防反编译总结
1
通过以上研究,iOS应用开发者必须要注意iOS应用反编译技术研究了,不要让iOS应用重蹈Android应用的覆辙,iOS应用防反编译!
4. ios加壳和防反编译有什么好的方案
iOS应用加密防反编译技术
本地数据加密
iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息
URL编码加密
iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析
网络传输数据加密
iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据
方法体,方法名高级混淆
iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码
程序结构混排加密
iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低
5. ios app客户端可以反编译吗
ipa 文件其实是一个压缩包,里面包括了可执行文件,资源文件等信息。 反编译的话也可以,只是你要有足够强的功底,就可以。这个至少汇编得会吧,然后可以根据反编译出来的汇编写出原来的OC程序。现在我没有发现有什么工具可以直接反编译出ELF文...
6. ios反编译unity的assembly-csharp.dll,安卓可以 ipa的为什么不行
不可以的~U3D可以直接导出APK,但是IOS,先要导出XCODE,然后需要苹果系统才能生成ipa什么的。
7. iOS代码加密的几种方式
众所周知的是大部分iOS代码一般不会做加密加固,因为iOS
APP一般是通过AppStore发布的,而且苹果的系统难以攻破,所以在iOS里做代码加固一般是一件出力不讨好的事情。万事皆有例外,不管iOS、adr还是js,加密的目的是为了代码的安全性,虽然现在开源畅行,但是不管个人开发者还是大厂皆有保护代码安全的需求,所以iOS代码加固有了生存的土壤。下面简单介绍下iOS代码加密的几种方式。
iOS代码加密的几种方式
1.字符串加密
字符串会暴露APP的很多关键信息,攻击者可以根据从界面获取的字符串,快速找到相关逻辑的处理函数,从而进行分析破解。加密字符串可以增加攻击者阅读代码的难度以及根据字符串静态搜索的难度。
一般的处理方式是对需要加密的字符串加密,并保存加密后的数据,再在使用字符串的地方插入解密算法。简单的加密算法可以把NSString转为byte或者NSData的方式,还可以把字符串放到后端来返回,尽量少的暴露页面信息。下面举个简单例子,把NSString转为16进制的字符串:
2.符号混淆
符号混淆的中心思想是将类名、方法名、变量名替换为无意义符号,提高应用安全性;防止敏感符号被class-mp工具提取,防止IDA Pro等工具反编译后分析业务代码。目前市面上的IOS应用基本上是没有使用类名方法名混淆的。
别名
在编写代码的时候直接用别名可能是最简单的一种方式,也是比较管用的一种方式。因为你的app被破解后,假如很容易就能从你的类名中寻找到蛛丝马迹,那离hook只是一步之遥,之前微信抢红包的插件应该就是用hook的方式执行的。
b.C重写
编写别名的方式不是很易读,而且也不利于后续维护,这时你可能需要升级一下你的保护方式,用C来重写你的代码吧。这样把函数名隐藏在结构体中,用函数指针成员的形式存储,编译后,只留下了地址,去掉了名字和参数表,让他们无从下手( from 念茜)。如下例子:
c.脚本处理
稍微高级一点的是脚本扫描处理替换代码,因为要用到linux命令来编写脚本,可能会有一点门槛,不过学了之后你就可以出去吹嘘你全栈工程师的名头啦。。。
linux脚本比较常用的几个命令如下:
脚本混淆替换是用上述几个命令扫描出来需要替换的字符串,比如方法名,类名,变量名,并做替换,如果你能熟练应用上述几个命令,恭喜你,已经了解了脚本的一点皮毛了。
如以下脚本搜索遍历了代码目录下的需要混淆的关键字:
替换的方式可以直接扫描文件并对文件中的所有内容替换,也可以采用define的方式定义别名。例如:
d.开源项目ios-class-guard
该项目是基于class-mp的扩展,和脚本处理类似,是用class-mp扫描出编译后的类名、方法名、属性名等并做替换,只是不支持隐式C方法的替换,有兴趣的同学可以使用下。
3.代码逻辑混淆
代码逻辑混淆有以下几个方面的含义:
对方法体进行混淆,保证源码被逆向后该部分的代码有很大的迷惑性,因为有一些垃圾代码的存在;
对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低,这很容易把破解者带到沟里去;
它拥有和原始的代码一样的功能,这是最最关键的。
一般使用obfuscator-llvm来做代码逻辑混淆,或许会对该开源工具做个简单介绍。
4.加固SDK
adr中一般比较常见的加固等操作,iOS也有一些第三方提供这样的服务,但是没有真正使用过,不知道效果如何。
当然还有一些第三方服务的加固产品,基本上都是采用了以上一种或几种混淆方式做的封装,如果想要直接可以拿来使用的服务,可以采用下,常用的一些服务如下:
几维安全
iOS加密可能市场很小,但是存在必有道理,在越狱/开源/极客的眼中,你的APP并没有你想象的那么安全,如果希望你的代码更加安全,就应给iOS代码加密。
8. 腾讯云的产品介绍
腾讯云包括云服务器、云数据库、CDN、云安全、万象图片和云点播等产品。
开发者通过接入腾讯云平台,可降低初期创业的成本,能更轻松地应对来自服务器、存储以及带宽的压力。 云服务器
高性能高稳定的云虚拟机,可在云中提供弹性可调节的计算容量,不让计算能束缚您的想象;您可以轻松购买自定义配置的机型,在几分钟内获取到新服务器,并根据您的需要使用镜像进行快速的扩容。
弹性web 服务
弹性Web 引擎(Cloud Elastic Engine)是一种Web 引擎服务,是一体化web 应用运行环境,弹性伸缩,中小开发者的利器。通过提供已部署好php、nginx 等基础web 环境,让您仅需上传自己的代码,即可轻松地完成web 服务的搭建。
负载均衡
腾讯云负载均衡服务,用于将业务流量自动分配到多个云服务器、弹性web 引擎等计算单元的服务,帮您构建海量访问的业务能力,以及实现高水平的业务容错能力。腾讯云提供公网及内外负载均衡,分别处理来自公网和云内的业务流量分发。 云数据库
云数据库(CDB:Cloud Data Base)是腾讯云平台提供的面向互联网应用的数据存储服务。
NoSQL 高速存储
腾讯NoSQL 高速存储,是腾讯自主研发的极高性能、内存级、持久化、分布式的Key-Value存储服务。NoSQL 高速存储以最终落地存储来设计,拥有数据库级别的访问保障和持续服务能力。支持Memcached 协议,能力比Memcached 强(能落地),适用Memcached、TTServer 的地方都适用NoSQL 高速存储。NoSQL 高速存储解决了内存数据可靠性、分布式及一致性上的问题,让海量访问业务的开发变得简单快捷。
对象存储服务(beta)
对象存储服务(COS:Cloud Object Service),是腾讯云平台提供的对象存储服务。COS 为开发者提供安全、稳定、高效、实惠的对象存储服务,开发者可以将任意动态、静态生成的数据,存放到COS 上,再通过HTTP 的方式进行访问。COS 的文件访问接口提供全国范围内的动态加速,使开发者无需关注网络不同所带来的体验问题。
CDN
CDN(Content Delivery Network)即内容分发网络。腾讯CDN 服务的目标与一般意义上的CDN 服务是一样的,旨在将开发者网站中提供给终端用户的内容(包括网页对象—文本、图片、脚本,可下载的对象—多媒体文件、软件、文档,等等),发布到多个数据中心的多台服务器上,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 云监控
腾讯云监控是面向腾讯云客户的一款监控服务,能够对客户购买的云资源以及基于腾讯云构建的应用系统进行实时监测。开发人员或者系统管理员可以通过腾讯云监控收集各种性能指标,了解其系统运行的相关信息,并做出实时响应,保证自己的服务正常运行。
腾讯云监控提供了可靠,灵活的监控解决方案,当您首次购买云服务后,不需要任何设置,就可以获得基础监控指标,同时,也可以通过简单的步骤后,获取到更多的个性化指标。除了丰富的监控指标视图以外,腾讯云监控还提供个性化的告警服务,客户可以对任意监控指标自定义告警策略。通过短信,邮件,微信等方式,实时推送故障告警。
腾讯云监控也是一个开放式的监控平台,支持用户上报个性化的指标,提供多个维度,多种粒度的实时数据统计以及告警分析。并提供开放式的API,让客户通过接口也能够获取到监控数据。
云安全
腾讯公司安全团队在处理各种安全问题的过程中积累了丰富的技术和经验,腾讯云安全将这些宝贵的安全技术和经验打造成优秀的安全服务产品,为开发商提供业界领先的安全服务。腾讯云安全能够帮助开发商免受各种攻击行为的干扰和影响,让客户专注于自己创新业务的发展,极大的降低了客户在基础环境安全和业务安全上的投入和成本。
云拨测
云拨测依托腾讯专有的服务质量监测网络,利用分布于全球的服务质量监测点,对用户的网站,域名,后台接口等进行周期性监控, 并提供实时告警, 性能和可用性视图展示,智能分析等服务。 TOD 大数据处理
TOD 是腾讯云为用户提供的一套完整的、开箱即用的云端大数据处理解决方案。开发者可以在线创建数据仓库,编写、调试和运行SQL 脚本,调用MR程序,完成对海量数据的各种处理。另外开发者还可以将编写的数据处理脚本定义成周期性执行的任务,通过可视化界面拖拽定义任务间依赖关系,实现复杂的数据处理工作流。主要应用于海量数据统计、数据挖掘等领域。已经为微信、QQ 空间、广点通、腾讯游戏、财付通、QQ 网购等关键业务的提供了数据分析服务。
腾讯云分析
腾讯云分析是一款专业的移动应用统计分析工具,支持主流智能手机平台。开发者可以方便地通过嵌入统计SDK,实现对移动应用的全面监测,实时掌握产品表现,准确洞察用户行为。不仅仅是记录,移动APP 统计还分析每个环节,利用数据透过现象看本质。腾讯云分析还同时提供业内市场排名趋势、竞品排名监控等情报信息,让您在应用开发运营过程中,知己知彼,百战百胜。
腾讯云搜
腾讯云搜(Tencent Cloud Search)是腾讯公司基于在搜索领域多年的技术积累,对公司内部各大垂直搜索业务搜索需求进行高度抽象, 把搜索引擎组件化、平台化、服务化,最终形成成熟的搜索对外开放能力,为广大移动应用开发者和网站站长推出的一站式结构化数据搜索托管服务。 移动加速
移动加速服务是腾讯云针对终端应用提供的访问加速服务,通过加速机房、优化路由算法、动态数据压缩等多重措施提升移动应用的访问速度和用户体验,并为客户提供了加速效果展示、趋势对比、异常告警等运营工具随时了解加速效果。
应用加固
应用加固服务是腾讯云依托多年终端安全经验,提供的一项终端应用安全加固服务。具有操作简单、多渠道监控、防反编译防篡改防植入、零影响的特点,帮助用户保护应用版权和收入。
腾讯云安全认证
腾讯云安全认证是腾讯云提供的免费安全认证服务,通过申请审核的用户将获得权威的腾讯云认证展示,让您的业务获得腾讯亿万用户的认可。免费安全服务,权威认证展示,腾讯云已为2.6万网站、应用保驾护航。
信鸽推送
信鸽(XG Push)是一款专业的免费移动App 推送平台,支持百亿级的通知/ 消息推送,秒级触达移动用户,现已全面支持Android 和iOS 两大主流平台。开发者可以方便地通过嵌入SDK,通过API 调用或者Web 端可视化操作,实现对特定用户推送,大幅提升用户活跃度,有效唤醒沉睡用户,并实时查看推送效果。
域名备案
腾讯云备案服务,帮助您将网站在工信部系统中进行登记,获得备案证书悬挂在网站底部。目前支持企业、个人、政府机关、事业单位、社会团体备案。
云API
云API 是构建云开放生态重要的一环。腾讯云提供的计算、数据、运营运维等基础能力,包括云服务器、云数据库、CDN 和对象存储服务等,以及腾讯云分析(MTA)、腾讯云推送(信鸽)等大数据运营服务等,都将以标准的开放API 的形式提供给广大企业和开发者使用,方便开发者集成和二次开发。
万象图片
万象图片是将QQ空间相册积累的十年图片经验开放给开发者,提供专业一体化的图片解决方案,涵盖图片上传、下载、存储、图像处理。
维纳斯
维纳斯(Wireless Network Service)专业的移动网络接入服务,使用腾讯骨干网络,全国400个节点,连通成功率99.9%。
云点播
腾讯云一站式视频点播服务,汇聚腾讯强大视频处理能力。从灵活上传到快速转码,从便捷发布到自定义播放器开发,为客户提供专业可靠的完整视频服务。
9. iOS app 通过class mp反编译出来的东西对黑客有用吗
Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里Xpose的ZjDroid。