本帖最后由 zopelee 于 2013-11-14 10:53:16 编辑

解决方案 »

  1.   

    你咋不通过网络来获取key呢   得到key了解密了在加载
      

  2.   

    您是指把key放在某服务器上,每次app启动时自动向服务器请求该key并解密资源?
    那么请问向服务器请求key的这段代码写在哪?
    如果请求代码写在Java里,那么apk被反编译后该请求过程就可见了,重现一遍请求,就得到key了,对吗?
    (如有逻辑错误,请指正)
    谢谢!
      

  3.   

    2楼所说的方案,可以请求的时候需加上签名来请求,然后通过https协议请求,服务器端会验证签名。
    而别人如果反编译的话,也是不能获取你真正的签名值的
      

  4.   

    直接dump内存,你再加密也白搭啊
      

  5.   

    楼上正解,把不希望用户看到的 某些 常量 封装到 framework
      

  6.   

    您是指把key放在某服务器上,每次app启动时自动向服务器请求该key并解密资源?
    那么请问向服务器请求key的这段代码写在哪?
    如果请求代码写在Java里,那么apk被反编译后该请求过程就可见了,重现一遍请求,就得到key了,对吗?
    (如有逻辑错误,请指正)
    谢谢!
    验证的话  就像LS说的  可以加上前面 以及apk文件的MD5值等  
      

  7.   


    编译了你的代码 修改你的参数 很简单的事在android内部获取签名的方式都可以通过java来获取。。 伪造你一个 真签名 非常简单的
      

  8.   

    apk存放到assert里面 会对你的应用运行效率产生影响的。。
    很多游戏都会这么做。。他们都会在游戏前加载游戏图片。。这个时间都偏长的。如果你非要加密 那就把密码直接存放到c层就可以了因为不管你放哪都是有可能被盗版,只是难度而已。。你放服务器上 还可以通过抓包来抓取到。。 还不如直接把key放c里面
      

  9.   

    还有就是 你的图片不管什么方式都不可能保证绝对安全的想要导出你的程序的图片 可以从内存里面来进行导出。。都不需要你的keyhook直接让你解密完来把图片导出。
      

  10.   

    跟图片没直接关系,关键是想探索保护代码、防反编译的方法。
    我在链接里面提供的两个app的确加密了图片,主要希望通过图片来看app是否能被成功反编译。
    解密图片的key直接写在了代码里,所以解密图片的难易程度基本能反映代码保护是否有效。
      

  11.   


    编译了你的代码 修改你的参数 很简单的事在android内部获取签名的方式都可以通过java来获取。。 伪造你一个 真签名 非常简单的
    修改了,签名就不一样了好不好