• app加固


    为什么要加固APP?
    答:因为黑客通过反编译APK得到源码后,会在应用中插入代码,获取利益,比如添加广告,盗取用户账号、密码,后台定制活动等。
     
    反编译的方法?
    反编译是指apk文件通过反编译工具(例如ApkTool,BakSmali,dex2jar等)对其进行反编译,
     
    反编译后会失去原版APP的什么属性?
    在反编译时会失去原本的程序签名
    在反编译后,如果修改代码,会破坏代码的完整性。
     
     
    一、破解者如何盗取移动支付用户账号密码--防劫持和校验技术
    1.界面劫持:在登陆界面上布置一层透明的UI界面,当用户输入密码时是输入在透明UI界面上,获取用户账户密码。
      反劫持技术:APP自身进行检测自己的Activity是否是在栈顶,通过弹窗提示用户。
    2.校验:完整性校验、签名校验。防止二次打包。防止打包党通过反编译后在apk内添加广告。
        2.1完整性校验:运行时计算md5、sha1等。
        2.2签名校验:判断应用签名,是否为正版签名,否则提示或退出。
        由于Java层代码容易被反编译,所以我们要把校验技术放在native层(系统运行库层)
    二、破解者如何盗取移动支付用户账号密码--自定义键盘
        Android软键盘采用了一套统一的通信机制,通过重载BaseInputConnection类方法,可以拦截到输入字符,EditText类也有类似的监听拦截方法。
    1、自定义键盘一般采用标准的数字键和qwerty键盘布局。
    2、更优秀的做法,采用乱序,大大提高了安全等级。
     
     
    关于第三方的加固方案
    安卓dalvik虚拟机要求dex文件在内存中以明文形式存在,那么任何加壳方法,到头来到了内存还是明文存在,各种dump方法终究是可以获得它的.那么APP究竟应该如何加固才能防止APP被篡改?
     
    app被篡改是防止不了的,只要有人肯逆向。目前最正统的做法就是加壳,不要小看加壳,dump出dex对于大多数人来说依然是一件非常困难的事,如果脱不掉就别谈篡改了。壳被脱掉后也是有办法阻碍篡改的,关键就在于反二次打包,可以通过在原生层验证签名来实现。另外有一种办法,处理编译后的二进制AndroidManifest.xml文件,添加无效的参数,使反编译得到错误的清单文件,篡改者用这个错误的清单文件回编译会使app在一个错误的上下文中运行,可检测到。

    1、梆梆

    2、通付盾

    3、360加固保

    4、爱加密

    5、腾讯

    6、娜迦

  • 相关阅读:
    C#中Invoke的用法(转)
    C#中Thread.IsBackground 属性
    127.0.0.1是什么地址?
    C# Socket服务器端如何判断客户端断开求解
    C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它。
    C#多线程学习之如何操纵一个线程
    利用TCP协议,实现基于Socket的小聊天程序(初级版)
    进程与线程的一个简单解释
    javascript修改css样式表
    html根据下拉框选中的值修改背景颜色
  • 原文地址:https://www.cnblogs.com/jsonfan/p/5551901.html
Copyright © 2020-2023  润新知