导航:首页 > 源码编译 > iphone防反编译方案

iphone防反编译方案

发布时间:2022-03-02 12:38:19

① 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应用防反编译!

② 如何做好APP加密,防止被反编译,二次打包

App加密属于App安全的重要步骤之一,主要通过本地数据文件保护,页面防钓鱼保护,键盘监听保护,截屏保护和协议加密。源码安全包括:动态指令加载,DEX加花加壳保护,SO文件保护和内存防mp,资源文件保护保护等等。单一的加密方式可能比较简单,比较容易被破解,但是组合起来效果就会很好。不过专业加密首先还是得找一个专业权威的安卓APP加固平台,对APP进行加固保护。个人推荐深圳海云安,他们最新推出的第六代无壳加固技术是行业内领先的安全加固技术,是目前安全度数最高的。

③ app防破解方法,防止APK程序反编译怎么做,目前有什么好用方法

防破解是个热门话题,最近很多热门的应用都用了采用了第三方的加密服务,毕竟现在通用的加密方法都是很容易被破解的。像史上最坑爹游戏、美食杰、这些热门都用了一个叫爱加密的第三方加密服务,可以防止这个apk反编译,代码注入,山寨盗版的行为。你自己去查一下吧,希望有帮助

④ 如何防止代码被反编译

由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。完全避免是不可能的,总有人能够破解你的代码。但是有几种方式来提高被反编译取代码的难度。
1 关键代码使用jni调用本地代码,用c或者c++编写,因此相对比较难于反编译

2 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。 网上开源的java代码混淆工具较多,一般是用ant的方式来编译的。

1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示:
target=android-8
proguard.config=proguard.cfg
Eclipse会通过此配置在工程目录生成proguard.cfg文件

2 . 生成keystore (如已有可直接利用)
按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin>目录下,输入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
参数意义:-validity主要是证书的有效期,写100000天;空格,退格键 都算密码。
命令执行后会在D:\Program Files\Java\jdk1.6.0_07\bin>目录下生成 android.keystore文件。

3. 在Eclipce的操作
File -> Export -> Export Android Application -> Select project -> Using the existing keystore , and input password -> select the destination APK file

经过混淆后的源代码,原先的类名和方法名会被类似a,b,c。。。的字符所替换,混淆的原理其实也就是类名和方法名的映射。
但4大组件并没有混淆(所有在清单文件定义的组件不能被混淆),因为系统需要通过清单文件来查找和运行应用程序。

proguard.cfg 文件代码解读
-optimizationpasses 5 ->设置混淆的压缩比率 0 ~ 7
-dontusemixedcaseclassnames -> Aa aA
- ->如果应用程序引入的有jar包,并且想混淆jar包里面的class
-dontpreverify
-verbose ->混淆后生产映射文件 map 类名->转化后类名的映射

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* ->混淆采用的算法.

-keep public class * extends android.app.Activity ->所有activity的子类不要去混淆
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
native <methods>; -> 所有native的方法不能去混淆.
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
-->某些构造方法不能去混淆
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keepclassmembers enum * { -> 枚举类不能去混淆.
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable { -> aidl文件不能去混淆.
public static final android.os.Parcelable$Creator *;
}

⑤ ios加壳和防反编译有什么好的方案

iOS应用加密防反编译技术

本地数据加密
iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息

URL编码加密
iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析

网络传输数据加密
iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据

方法体,方法名高级混淆
iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码

程序结构混排加密
iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低

⑥ 如何给自己的app加密,怎样防止反编译资源文件和防二次打包要怎么做

app加密,防反编译的办法有很多。代码混淆(proguard)也可以使用伪加密(apk本身是zip,对zip末尾加字节的方式防止apktool逆向,但是该方法在电脑上有些手机助手无法识别apk文件,手机上可以识别)。还有就是可以交给第三方的加密平台,不需要什么技术要求。同时也可以在XML文件查看有没有添加东西。有家叫做爱加密的免费平台还不错。

⑦ 如何反编译iphone越狱插件的GUI界面

1、switch语句:

正常的switch语句:
[java] view plain
public boolean onTouchEvent(MotionEvent event) {
final int y = (int) event.getY();
mBounceHack = false;
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
if (!isVerticalScrollBarEnabled()) {
setVerticalScrollBarEnabled(true);
}
if (getFirstVisiblePosition() == 0 && mRefreshState != REFRESHING) {
if ((mRefreshView.getBottom() >= mRefreshViewHeight || mRefreshView
.getTop() >= 0) && mRefreshState == RELEASE_TO_REFRESH) {
mRefreshState = REFRESHING
prepareForRefresh();
onRefresh();
} else if (mRefreshView.getBottom() < mRefreshViewHeight
|| mRefreshView.getTop() <= 0) {
resetHeader();
setSelection(1);
}
}
break;
case MotionEvent.ACTION_DOWN:
mLastMotionY = y;
break;
case MotionEvent.ACTION_MOVE:
applyHeaderPadding(event);
break; case MotionEvent.ACTION_CANCEL:
break;
}
return super.onTouchEvent(event);
}

经过JD-GUI反编译后:
[java] view plain
public boolean onTouchEvent(MotionEvent paramMotionEvent) {
int i = (int) paramMotionEvent.getY();
this.mBounceHack = 0;
switch (paramMotionEvent.getAction()) {
default:
case 1:
case 0:
case 2:
}
while (true) {
return super.onTouchEvent(paramMotionEvent);
if (!isVerticalScrollBarEnabled())
setVerticalScrollBarEnabled(1);
if ((getFirstVisiblePosition() != 0) || (this.mRefreshState == 4))
continue;
int j = this.mRefreshView.getBottom();
int k = this.mRefreshViewHeight;
if (((j >= k) || (this.mRefreshView.getTop() >= 0))
&& (this.mRefreshState == 3)) {
this.mRefreshState = 4;
prepareForRefresh();
onRefresh();
continue;
}
int m = this.mRefreshView.getBottom();
int n = this.mRefreshViewHeight;
if ((m >= n) && (this.mRefreshView.getTop() > 0))
continue;
resetHeader();
setSelection(1);
continue;
this.mLastMotionY = i;
continue;
applyHeaderPadding(paramMotionEvent);
}
}

⑧ 防止自己的APP被反编译或破解,通常有哪些方法

混淆代码:
Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。
防二次打包:
二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了!
我们先通过APK安全保护平台,对这款Android APK进行安全保护。
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!

注意:
在APK源代码安全保护平台,个人信息要填写完整,否则无法正常使用。APK加密完成后,系统会发出邮件通知加密完成。最后下载APK包再次完成签名,就可以正常使用了!

⑨ 如何防止代码被反编译

针对代码反编译,推荐使用CBS赛博锁,通过把安全容器内嵌到操作系统中,对容器内的应用和数据进行加锁,程序和数据在容器内运行,实现最后一米数据安全,防止核心数据被泄露,防止服务器终端中病毒,防止反编译,反破解。

阅读全文

与iphone防反编译方案相关的资料

热点内容
命令方块指令冰封剑 浏览:782
android中so文件 浏览:274
手工用气球做的捏捏乐解压神器 浏览:194
app升级后就闪退怎么办 浏览:33
手表上的乐涂app怎么下载 浏览:719
程序员身上的六宗罪是什么 浏览:143
游戏编程精粹6 浏览:69
修复ie的命令 浏览:601
linux服务器怎么查看地址 浏览:64
底部异地持仓源码 浏览:105
加密应用手机 浏览:798
程序员考试考什么科目 浏览:485
程序员必备文档编辑 浏览:960
踩水果解压大全 浏览:634
什么是dk服务器在 浏览:461
nusoapphp下载 浏览:929
黑莓原生解压rar 浏览:956
百度解压缩在哪 浏览:788
硬解压卡怎么用 浏览:183
新买的联想服务器怎么配置 浏览:757