2011年7月25日
摘要: Apk签名首先要有一个keystore的签名用的文件.keystore是由jdk自带的工具keytool生成的.具体生成方式参考一下:开始->运行->cmd->cd 到你安装的jdk的目录这里我是 C:\Program Files\Java\jdk1.6.0_10\bin然后输入:keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore-alias 后跟的是别名这里是 asaiAndroid.keystore-keyalg 是加密 阅读全文
posted @ 2011-07-25 16:56 一个人的天空@ 阅读(659) 评论(0) 推荐(0) 编辑
摘要: [前言]我们平时在开发android应用程序的过程中,一般都是利用eclipse集成开发环境,所以生成的apk有debug版本的签名权限,但是如果我们想要发布一款应用程序,并且希望在真机上运行的话,就需要进行签名。[工具]Java开发环境中的Keytool 和 Jarsigner,注意配置好环境路径,输入命令后有如下提示信息:C:\Documents and Settings\F1034740\桌面\博客文章>Keytoolkeytool 用法:-certreq [-v] [-protected] [-alias <別名>] [-sigalg <簽章演算法>] [ 阅读全文
posted @ 2011-07-25 16:49 一个人的天空@ 阅读(1648) 评论(0) 推荐(0) 编辑
摘要: ProGuard简介ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。引用ProGuard官方的一段话来介绍就是: ProGuardis a free Java class file shrinker, optimizer, obfuscator, and preverif 阅读全文
posted @ 2011-07-25 14:09 一个人的天空@ 阅读(34586) 评论(1) 推荐(3) 编辑
摘要: 写这篇文章之前,有些犹豫,我会不会因此而打开了一个潘多拉魔盒呢?后来一想,Android类似的恶意软件早已问世,说明这世上已经有不少软件安全专家或者黑客们对此并不陌生了。而我,仅仅是作为一个传道者,将这个少数人知道的秘密告诉大家。于是我心安多了,我想我是在为Android软件安全行业早日成熟起来做贡献吧~!所谓APK指的是Android操作系统的应用程序安装文件。所谓Crack,简单地理解为“破解”。我具体指的是反编译APK文件进行汇编级的代码分析,并修改或插入自己的代码,重新签名打包为APK文件,以达到改变程序原有行为的目的。由以上的说明可知,我们要Crack一个APK文件,主要流程有三步: 阅读全文
posted @ 2011-07-25 14:08 一个人的天空@ 阅读(3071) 评论(0) 推荐(0) 编辑
摘要: 一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android2.3.4。这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。如果要我给出建议的话,最好还是不要使用隐藏的API。不过有时为了实现Android应用某些特殊的功能或者效果,隐藏的API往往能发挥意想不到的作用。这些API具体能做些什么事,我就不在这里举例了。正好,如果你不知道隐藏API能做什么的话,那么还是尽早放弃使用它们吧……不想长篇大 阅读全文
posted @ 2011-07-25 14:07 一个人的天空@ 阅读(3550) 评论(0) 推荐(0) 编辑
摘要: Java反射机制是Java语言被视为准动态语言的关键性质。Java反射机制的核心就是允许在运行时通过JavaReflectionAPIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法)。也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制。你会嗤之以鼻地告诉我,Java反射机制没啥用。或许在J2EE、J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该机制会带给你许多惊喜。如果熟悉Android,那么你应该知道,Google不知出于什么原因,在系统源码中一 阅读全文
posted @ 2011-07-25 14:06 一个人的天空@ 阅读(2680) 评论(1) 推荐(2) 编辑
摘要: Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbagecollection)负责自动回收不再使用的内存。上面是Java内存管理机制的基本情况。但是如果仅仅理解到这里,我们在实际的项目开发中仍然会遇到内存泄漏的问题。也许有人表示怀疑,既然Java的垃圾回收机制能够自动的回收内存 阅读全文
posted @ 2011-07-25 14:05 一个人的天空@ 阅读(48022) 评论(2) 推荐(12) 编辑
摘要: 又是很长时间没有更新博客了,客观原因是真的很忙,主观原因是自己太懒了。但是想想,知识、经验都是慢慢积累起来的,不总结、不反思、不记录,很多时候这些本应该积累的东西,就渐渐被遗忘了。写在博客里,一方面是为了与大家交流分享,另一方面是记录自己走过的路,反思自己做过的事,这样忙工作才不算是白忙。对自己、对大家都有好处。想是这样想,但真正忙起来的时候就什么都顾不了了。所以,趁着五一长假,终于有时间写一点东西,用于分享,用于记录。公司推行敏捷开发已有些时日了。IBM的顾问每周也还会飞来辅导一下,新的知识已经不多,主要还是跟进解决一些在日常执行中遇到的问题,纠正一些错误的理解。关于敏捷开发的概念和好处这些 阅读全文
posted @ 2011-07-25 14:02 一个人的天空@ 阅读(3651) 评论(0) 推荐(0) 编辑
摘要: 发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的。签名机制在Android应用和框架中有着十分重要的作用。例如,Android系统禁止更新安装签名不一致的APK;如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等。在《APK Crack》一文中,我们了解到,要破解一个APK,必然需要重新对APK进行签名。而这个签名,一般情况无法再与APK原先的签名保持一致。(除非APK原作者的私钥泄漏,那已经是另一个层次的软件安全问题了。)简单地说,签名机制标明了APK的发行机构。因此,站在软件安全的角度,我们就可以通过比对APK的签名情 阅读全文
posted @ 2011-07-25 13:55 一个人的天空@ 阅读(17576) 评论(1) 推荐(3) 编辑