前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

Android防破解--山顶洞海绵9的文章--CFANZ社区--IT技术分享网站 CFANZ 文章 图库 文库 视频 小组 成员 注册 登录 收藏(1) 推荐(1) 关注(103) 回应(0) Android防破解 发布者:山顶洞海绵9 他的主页 关注的信息 收藏的信息 推荐的信息 参加的群组 时间:2013-05-13 09:34:03 越来越多的个人和机构都在为第三方进行开放企业级的APP,这种类型的APP,开发者非常关心自己的APP会不会被破解,从而直接影响自己的收入。 最近对这个话题也比较感兴趣,看到 BugRunner于2013年3月份发表的《基于NDK的Android防破解》(http://blog.csdn.net/bugrunner/article/details/8634585),想了几个方面。 非常认同,基于NDK,比JAVA更难反编译,更难破解,但是他这个方案其实有很多问题: 1、NDK只是作为一个入口点,检查MD5,如果不一致就退出运行。 如果直接调用原先的ACTIVITY作为入口点,显然就无法阻止了。而且这个并不难实现。 2、NDK之所以难以反编译,很大程度是汇编低级语言的可读性很差,但是如果只是一个入口点这么简单的程序,反编译之后,其实是很容易修改的。更何况在本方案中,只是进行md5数值的比对。 对于一个商业价值较大的来说,这个增加破解的代价还是太低了。 如果希望增加破解难度,可以从以下几个方面考虑: 1、核心的比对验证算法应该是基于NDK,在JAVA这一侧竟可能多的进行比较比对,甚至是随机继续调用。如果SO文件不存在,是不能运行下去的。 2、这个比对函数,不能是固定的,否则反编译后定位到一个地方,就很容易替换所有的地方。可以采用多次比对的思路,比如设计若干个比对函数,每个比对算法是不一样,基于时间,基于文件系统某个文件,MD5检验,联网,短信验证等等。不满足任何一个均是失败的。 3、在服务器一侧,必须记录客户端的行为,比如活跃用户数,用户的分布,这个是很有效的检查办法。使用很多APP的统计工具都可以做到,一旦在某个区域,活跃用户数增加,可以判定被盗版了。 4、在服务器和客户端之间,需要有一定的联系,结合NDK算法。比如一周内,必须和服务器通讯一次,服务器可以返回给客户端一些简单的命令,也可以高级的命令,比如APP安装时间,上次运行时间,一些业务统计数据,甚至自我销毁数据等功能。 因此,双方既然在一起合作,出发点首先不能影响客户端的性能和功能,在检查方法上不能简单依赖技术,更多是一些业务上的指标更容易体现是否被盗版。 标签: Android防 破解 相关信息 更多 [Android]Awind.inc系列android软件破解 android apk破解--初出茅庐(1) 英语口语8000句 Android中破解root权限 Linux用户管理安全宝典:密码防破解与帐号文件保护 Flash破解与加密 Flash文件的加密与破解技术详细解析 [APK破解]Smart Launcher,简体中文,无需注册 [APK破解]mindmapper思维导图软件,破解全功能版 机密保障正当时 安全U盘采购攻略 介绍几种swf文件的加密方法 HTML 5灰度图像处理练习4:Healthphere网站案例分析 真机破解运行Google手机平台Android [Android]1518占卜破解,无广告 [Android]拖拖乐,与宝贝玩的游戏,破解,无广告 [Android]单机斗地主,破解版,无广告 [Android]WebOfCam,远程访问手机的摄像头,破解无广告 {#if $T.total > 0 && $T.page {#foreach $T.data as r} {$T.r.formt_tm}{#if $T.r.nickname}{$T.r.nickname}{#else}匿名{#/if} {$T.r.content} {#/for} {#if $T.page > 1 && $T.pageNum > 1) 1 ? $T.page -1 : 1}">上一页 {#/if} 1 {#if $T.s_num > 2} ... {#/if} {#for index = $T.s_num to $T.e_num} {$T.index} {#/for} {#if $T.pageNum > $T.pageNavSize+ 2 && $T.s_num != $T.pageNum - $T.pageNavSize} ... {#/if} {#if $T.pageNum > 1} {$T.pageNum} {#/if} {#if $T.pageNum != $T.page && $T.pageNum > 1} 下一页 {#/if} {#/if} 您的回应... 提交 也许你感兴趣 换一批 restore和recover命令的区别 来自:文章 关注度:2 辅助nginx负载均衡器的配置说明 来自:文章 关注度:2 小清新。by LLLLot.主题展区_网易摄影 来自:图片 关注度:2 【网络层】网络层概述 来自:文章 关注度:2 假如女人是一种编程语言 来自:文章 关注度:2 浅谈Struts2拦截器的原理与实现 来自:文章 关注度:2 《Thinking in C++, 2nd Edition》笔记-第十一章(References & the Copy-Constructor) 来自:文章 关注度:2 手机病毒伪装团购短信 假借10086名义传播 来自:文章 关注度:2 Windows 7中的远程控制 来自:文章 关注度:2 玩Linux这些年积累的技巧 来自:文章 关注度:2 Linux kernel探究IO Scheduling 来自:文章 关注度:2 苏格兰高地牛 来自:图片 关注度:2 什么是名字空间 来自:文章 关注度:2 模型有顶点无法线怎么办:根据模型顶点坐标计算法线 来自:文章 关注度:2 深圳员工平均月薪3326元:IT业为4250元 来自:文章 关注度:2 黑色和“他”的“密友”们 来自:文章 关注度:2 Firefox与IE下UL预设标记的异同 来自:文章 关注度:2 用DW中ToolTip代码改进的提示框 来自:文章 关注度:2 无线Mesh网状网助力韩国智能高速公路建设 来自:文章 关注度:2 一股“东风”推进统一通信产业发展 来自:文章 关注度:2 无线网络应用配置六大要素 来自:文章 关注度:2 使用 JSONP 实现跨域通信 来自:文章 关注度:2 WCDMA协议一致性测试要求和解决方案 来自:文章 关注度:2 六大经典解决方案让局域网内互访无障碍 来自:文章 关注度:2 表格外观的无序列表 来自:文章 关注度:2 Sub-Pixel Bug?! 来自:文章 关注度:2 黑客大事记:岁月不减光辉的“战绩” 来自:文章 关注度:2 家庭无线路由故障详解 来自:文章 关注度:2 无线城市的三道坎 来自:文章 关注度:2 黑客组织激活Windows Vista全程揭秘 来自:文章 关注度:2 Cisco交换机常见问题全面分析 来自:文章 关注度:2 PHP+MySQL+jQuery实现发布微博程序――jQuery篇 来自:文章 关注度:2 双绞线之十问十答 来自:文章 关注度:2 用Ps设计某杂志的网站界面 来自:文章 关注度:2 它是鬼还是神 深入了解灰鸽子2007真实功能(图) 来自:文章 关注度:2 大多数Linux包管理器存在安全隐患 来自:文章 关注度:2 国外医院导示系统设计欣赏-医院环境导示设计医院标识牌设计-专业医院院徽设计、VI设计公司—云帆医院品牌形象设计博客 好舒服的搭~清新又不失帅气~~ Android 通过 XMPP 实现聊天功能,App Engine Assisted Group Chat 如何查看一个运行的exe执行程序需要有哪些DLL动态链接库 谱聚类(spectral clustering) Android中使用图片切换组件【ImageSwitcher】 热门标签 更多 Android Linux 实现 Java 开发 方法 windows 服务器 问题 解决 文件 设计 配置 安装 网络 安全 函数 发布 系统 微软 技术 分析 推出 程序 Photoshop 存储 操作 oracle 软件 SQL 关于我们 人才招聘 联系我们 免责声明 帮助中心 网站地图 RSS订阅 API ?2012 本站提供的内容来源于广大网络用户,我们不保证内容的正确性。如果转载了您的内容,希望删除的请联系我们!