1.app安全之反编译(一)
2.苹果审核被拒4.3,图片图片怎么解决
3.iOS审核被拒4.3,混淆混淆怎么解决
4.如何评价软件 Typora?
app安全之反编译(一)
以往安全研究者关注的多是移动应用的本地安全,例如远程控制、图片图片应用破解及信息窃取等,混淆混淆然而忽视了服务端安全。源码源码有源码怎么做网站链接服务端的图片图片安全问题普遍存在,如SQL注入、混淆混淆文件上传、源码源码中间件或服务器漏洞等。图片图片移动应用通过web API服务与服务端交互,混淆混淆这种模式将移动安全与web安全紧密相连。源码源码然而,图片图片部分应用不直接嵌入网页,混淆混淆而是源码源码通过API接口返回JSON数据,这使得扫描器和爬虫无法获取链接。
在iOS系统中,由于无法进行反编译,安全专家通常借助反汇编工具,如IDA,来分析应用逻辑。对于已越狱的iOS设备,IDA、classdump等工具可以辅助进行分析。在Android系统中,应用反编译则更为常见,通常使用apktool、dex2jar和jd-gui等工具。为了检测Android应用的安全性,通常会先判断是否被加壳,之后尝试脱壳并反编译代码,webpack机制源码结合上下文分析代码位置,有时还需进行动态调试。
以下是针对应用反编译的一般思路及工具使用方法:
脱壳通常使用DexHunter,这是一款用于通用自动脱壳的Android工具,由大牛zyqqyz于年下半发表在看雪论坛,详情见《Android dex文件通用自动脱壳器》。接下来是反编译流程:
1. 使用apktool将APK文件反编译成源代码、、XML配置、语言资源等文件。下载apktool,解压后得到三个文件:aapt.exe、apktool.bat、apktool.jar。将待反编译的APK文件放入指定目录,打开命令行界面输入命令:apktool.bat d -f test.apk test(test.apk为APK文件全名,test为输出文件夹名称)。执行后会在指定文件夹生成反编译资源。
2. 若要将反编译的文件重新打包成APK,可输入命令:apktool.bat b test(test为编译文件夹)。执行后在指定文件夹下会生成build和dist文件夹,dist中存放着打包后的APK文件。
3. 反编译得到的Java源代码可通过dex2jar和jd-gui工具进一步分析。将classes.dex文件解压并转换为jar文件,然后使用jd-gui打开查看源码。
4. 对于混淆过的应用,类文件名称和方法名称会以a、b、c等样式命名,需要仔细分析。源码锁机
为了简化反编译过程,还提供了图形化工具,如Androidfby。使用该工具进行APK反编译更为直观方便。
在进行APK修改时,了解未加密资源的修改方法至关重要。非res文件夹下的资源及res中的可直接解压缩修改。具体操作包括解压缩APK包、修改指定文件、删除签名文件夹、重新打包并签名后安装。
为确保分享的资源与工具的时效性与实用性,我运营着一个公众号,每日分享安全资料与工具,欢迎关注。
苹果审核被拒4.3,怎么解决
4.3一般存在3种情况,可以根据被拒回复进行判断,如果你真的看不懂被拒回复,下面一一列举,逐一排除,黑色字体是解决方案
第一种:简称代码重复,代码重复使用也有三种情况
1.可能你之前用这套源码上过一个包,现在用这套代码直接改一个logo跟名字再上一个马甲,这种基本会直接4.3
这种情况基本要改源码,第一步:工程中的文件夹的名字全部进行修改。第二步:每一个工程都有一个类前缀, 我们需要取一个长一点的类前缀, 并且这个类前缀在你的整个工程一定是一个唯一的字符串, 我们假设这个类前缀是PayDayLoan, 现在我们需要生成一个控制器, 控制器的结尾Controller也需要用一个特定的字符去代替, 比如:Director,剩下的View以及object做法类似, 就不一一介绍了,做马甲的时候就是把这些名字用另一个唯一的字符去代替, 尽量长一点。第三步:把另一个其他的工程中的类全部导入进来, 主要是混淆代码, 在现有的工程中调用, 可以没有任何效果, 只是单纯调用方法。
注:单一的加入垃圾代码混淆没用的!
2.如果你的壁纸源码分享这套源码在一个账号上提交过,但是被拒了,后来因为其他原因你不得不在别的账号上重新提交此源码,这种情况第二个账号基本也会报4.3
这种情况需要在第一个账号做一下处理, xcode新建一个应用, 直接用之前提交过的bundle Id打包,logo用一个纯白或者纯黑的, 将这个新建的应用提交到应用市场, 构建版本中将之前被拒的包移除, 用这个新的应用顶替之前被拒的包, app名字改成 “作废-此应用不再提交” 后面再随便加一个数次, 因为这个名字别人已经用过了, app描述跟app名字一样, 剩下的信息全部删除.最后点击保存即可.不需要提交审核。
3.你的源码只要提交到itunes connect里面,就算没提交审核,当你再次使用此源码提交审核的时候,基本都会报4.3
这种情况的解决方案参照2
第二种,界面功能相似
这种情况简单的改源码已经没用了,需要在原有的app上加一些不同的功能,我用借贷类举例说明该如何解决,其他类型的app可以参考
以下举两个应用说明, 分别用A应用与B应用代替, 你需要如何处理并且如何回复审核人员
1.A应用 是给没有信用卡的用户使用的一款借款App,B应用 是给有信用卡的用户使用的一款借款App.2.A应用的最高借款额度是元, B应用 的最高借款额度是元.3.A应用的还款时间是7天与天, B应用 的还款时间是天. 4.A应用 内部有贷款计算器功能, B应用只是一个普通的贷款app, 并无其他功能5.两款app是我们公司内不同的部门开发的app, 分别针对不同的用户人群.
第三种,app名字被用过
这一种,可能是最容易被忽略的,取名字之前一定要先搜索app store有没有同名应用,尽量避免同名应用
iOS审核被拒4.3,怎么解决
最近,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。作者:棋牌视角
来源:棋牌视角
本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处
来源: 棋牌视角(ID:qipai)
本文为作者授权鸟哥笔记发布,转载请联系作者并注明出处。
马甲包对于一家公司的产品引流起到至关重要的作用。但是最近这段时间,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马甲包的混淆方案。
第一次被打回
第一次被打回时,极限抄底源码我们并没有意识到马甲包的问题有多严重,而且苹果给出的拒绝原因是我们的APP中包含敏感词汇,我们当时并没有往马甲包的方面去想,第一次被打回时,我们采用的方案是对敏感词汇进行base+MD5的混合加密方案,然后就重新提包了。
第二次被打回
这次苹果说的很明显了,而且他们机扫了我们的二进制文件,告诉我们API名称与我们之前的一个产品非常相像,而且那个产品并不是使用这个马甲包的开发者账号。我们猜测苹果可能针对APP做了数据库,会去比对方法名。
这一次我们代价比较大,由于之前没有考虑到这层,我们的API名称就是和系统方法命名方式保持一致,导致无法引入脚本来自动替换。我们花了三个开发,和6个小时,人工对我们自定义的API名称加上了特定前缀,如ab_xxx.这个思路主要是根据念茜大佬之前在微博上发布的API混淆加密方案。念茜的脚本是将需要混淆的API添加进文件,然后全局对所有需要加密的API字段进行混淆加密。我们在此基础上更新了脚本,可以自动抓取拥有我们前缀的API进行加密。但是这个方案在后面我们完全摒弃,所以在这里不详细往下说了。
第三次打回
第三次被打回已经惊动了老板,再想不出好的固化混淆方案我觉得差不多可以收拾东西了。这次苹果的拒绝原因更令人窒息,他说我们的API加密性质太明显,认为我们的APP一定藏有什么隐藏功能,还给我们吃了一张延迟审核的黄牌。经过我们一波分析之后,认为这几次被打回的经验中,苹果没有涉及到说我们的UI有什么相似的地方,所以,只要我们能把这个马甲包做到变成我们开发人员都认为是另一个APP即可。
分析
首先感谢将混淆脚本开源的大佬!已经找不到源码是谁写的了,我们只是站在了巨人的肩膀上!
改头换面
首先,由于是从主APP上拉的分之进行开发,所以这个马甲包的scheme和工程名都没有变化,于是我们首先从这里进行开刀。我们把project名称完全换成了另一个。
API
首先base加密API肯定不能再使用了,苹果都说了,加密特征太过明显。
幸好之前已经把所有自定义的API名称都加上了ab_前缀,使得我们写脚本很好识别。我们将所有扫描出的API放到一个plist文件中保存在本地,然后我们建立了6个数组,每个数组中有6个单词,每次从每个数组中随机抽取一个单词。将6个单词拼接成一段方法名保存在另一个plist文件中,当然,在保存前,先去重,如果这个方法名已经用过了,那我们随机再换,这样一共可以生成种方法名,对于我们的工程已经够用了。
我们利用脚本遍历本地所有png文件,当然你可以自行添加.jpg格式遍历。根据自己的命名规则将所有重新命名了一波。另外我们也发现网上有个轮子可以利用shell命令对所有资源进行超轻量级的压缩,在不影响质量的情况下,改变的hash值。当然我们的马甲包中没有和主界面相似的,所以的这一步我们没有实践。
类前缀替换
这一步主要是更改文件名。程序扫描绝对地址下的所有文件,只要是带”XX”开头的文件都替换成”AB”这种,另外每次替换一个文件都要遍历所有文件,将所有用到这个头文件的文件内容进行更换。
注意
类前缀替换有时会有个别没有替换到,我没能定位到问题,但很少,可以手动查找替换
生成垃圾代码
我用plist专门搞了一个垃圾方法名,每四个方法生成一个带参数名的方法。暂时每个文件里只生成一个垃圾方法。当然可以多运行几次,就会生成几个垃圾方法
实现
混淆工程我们使用C+OC的混合编程方式。
目前已经实现的功能有:
1、资源修改名字
2、修改工程名
3、类前缀修改,如“GD”修改为“IE”,即修改了文件名
4、混淆随机添加垃圾代码、参数
5、修改方法名前缀
6、人工修改部分方法名,人工对重要类中的方法进行打乱排序
7、(可选)本地超轻量级压缩,打乱hash值,新上的马甲包建议修改
使用方法
启动参数配置
先配置启动参数再运行,如图
除第一项必选外其他都非必选。另外第一项启动参数必须放在第一行
参数解释
1.工程代码的绝对路径
2.-modifyProjectName [原工程名]>[新工程名]
3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]
4.-spamCodeOut
5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写
6.-handleXcassets (混淆文件)
7.-deleteComments (删除多余的空格和注释)
8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“”才能被识别,如果之前工程中没有xx下划线开头来命名方法的,此项不要勾选
此工程可以选择混淆概率,修改工程中kPercent数值。
实际测试如下
小结
目前第三次打回后的工程已经提审,未可知能否过审,会持续更新。脚本也写的很匆忙,后期会进行优化。脚本传送门
www.it.com
如何评价软件 Typora?
深入探索:Typora——一款革命性的Markdown编辑器 Typora,一款看似简约却蕴含强大功能的软件,凭借其实时预览、跨平台特性以及免费的优势,正逐渐成为Markdown编辑领域的佼佼者。它在设计上独具匠心,让我们逐一揭开它的神秘面纱:Markdown编辑器、智能标点、管理(无论是网络、本地还是图床)、以及那备受推崇的"打字机模式"和"专注模式"。实时预览功能更是让Typora在众多编辑器中独树一帜,让用户在创作过程中享有流畅无阻的体验。 Typora的设计理念注重用户体验,它自动隐藏Markdown语法,采用Hybrid View展示格式化的文本,确保用户在源代码模式下也能避免格式混淆。从H1到H3的标题管理,到软换行、硬换行和换段的精确控制,无论是Windows还是Unix风格,Typora都能无缝切换。不仅如此,它还内置了emoji输入、LaTeX公式支持和代码高亮,为学术和编程需求提供全方位的解决方案。 作为一款浏览器技术驱动的编辑器,Typora提供了图形化的表格插入方式和丰富的Markdown功能,如链接引用和脚注,以及对文件系统的智能管理。它能将Markdown文本转化为美观的HTML文档,同时嵌入CSS和可能的脚本,将HTML的灵活性与Markdown的简洁性完美结合。HTML作为文档结构的基础,是Typora赋予文本动态和美观的关键所在。 黑白底板上的数字标记和CSS的巧妙运用,使得Typora能够创建出专业级别的文档,无论是基本HTML输入,还是导出包含CSS的HTML文件,甚至是公众号写作,都得心应手。主题功能则为文档增添无限可能,用户可以根据需要定制自己的CSS样式。YAML front-matter的支持,使得Typora可以无缝集成到Hexo博客中,满足多样化的创作需求。 在技术细节上,Typora的安装过程并非毫无挑战,但社区的讨论和分享(如@Unee Wang提到的Ubuntu安装步骤)为用户提供了宝贵的帮助。值得注意的是,Typora基于Electron开发,结合Chromium和Node.js,虽然可能带来体积大、启动慢的缺点,但其Markdown转HTML的功能优势不容忽视。@oneselfly和@JasonZone的见解也揭示了跨平台的便利与性能之间的权衡。 总的来说,Typora凭借其强大而易用的功能,以及对细节的精细打磨,正在赢得越来越多用户的青睐。虽然仍有改进的空间,但其在Markdown编辑领域的创新和高效,无疑使其成为值得深入探索的工具。让我们一起期待它在未来的发展,共同见证Markdown编辑的革新历程。