摘要: 通信过程: 阅读全文
posted @ 2014-08-30 11:27 徐小鱼 阅读(116) 评论(0) 推荐(0)
摘要: importstaticorg.junit.Assert.*;importjava.security.MessageDigest;//消息摘要publicclassMDCoder {//md2消息摘要处理publicstaticbyte[] encodeMD2(byte[] data)throwsE... 阅读全文
posted @ 2014-08-30 11:24 徐小鱼 阅读(626) 评论(0) 推荐(0)
摘要: 需要将密钥发送到对方,对方用该密钥进行摘要处理,进行摘要验证。//初始化KeyGeneratorKeyGenerator keyGenerator= KeyGenerator.getInstance("HmacMd5");//出生密钥SecretKey secretKey=KeyGenerator.... 阅读全文
posted @ 2014-08-30 11:22 徐小鱼 阅读(1533) 评论(0) 推荐(0)
摘要: 密钥在不同实体之间传递,因此密钥必须可以序列化。所有密钥三个特性:算法:密钥使用的算法,如DES和DSA等,通过getAlgorithm()获取算法名编码形式:密钥的外部编码形式,如X.509,PKCS#8,使用getEncode()方法获取编码格式格式:已编码密钥的格式的名称,使用getFomat... 阅读全文
posted @ 2014-08-30 11:22 徐小鱼 阅读(4940) 评论(0) 推荐(0)
摘要: importjava.io.File;importjava.io.FileInputStream;importjava.security.DigestInputStream;importjava.security.MessageDigest;importstaticorg.junit.Assert.... 阅读全文
posted @ 2014-08-30 11:22 徐小鱼 阅读(302) 评论(0) 推荐(0)
摘要: packagetest;importjava.security.GeneralSecurityException;importjava.security.Key;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax... 阅读全文
posted @ 2014-08-30 11:21 徐小鱼 阅读(857) 评论(0) 推荐(0)
摘要: importorg.bouncycastle.util.encoders.Base64;//Bouncy Castle开源包publicclassBase64Code {publicfinalstaticStringENCODING="UTF-8";//以3个字节表示汉字publicstaticSt... 阅读全文
posted @ 2014-08-30 11:21 徐小鱼 阅读(555) 评论(0) 推荐(0)
摘要: byte[] input="sha".getBytes();//待做消息摘要算法的原始信息,可以是任意字符串MessageDigest sha=MessageDigest.getInstance("SHA");//使用“SHA”算法,构造MessageDigest对象sha.update(input... 阅读全文
posted @ 2014-08-30 11:20 徐小鱼 阅读(671) 评论(0) 推荐(0)
摘要: /** 密钥交换算法,即非对称加密算法* */publicclassDHCoder {//非对称加密算法publicstaticfinalStringKEY_ALGORITHM="DH";//本地密钥算法,即对称加密算法publicstaticfinalStringSECRET_ALGORITHM=... 阅读全文
posted @ 2014-08-30 11:20 徐小鱼 阅读(695) 评论(0) 推荐(0)
摘要: 私钥加密-->公钥解密,反之亦然,但不安全。也可以当做数字签名。publicclassRSACoder {//非对称加密算法publicstaticfinalStringKEY_ALGORITHM="RSA";//公钥privatestaticfinalStringPUBLIC_KEY="RSAPu... 阅读全文
posted @ 2014-08-30 11:20 徐小鱼 阅读(431) 评论(0) 推荐(0)
摘要: RSA、DSA和ECDSA三种算法。通常是先对消息做摘要处理,然后使用私钥对摘要值进行签名处理;验证时,使用公钥验证消息的摘要值。publicclassRSASin {privatestaticfinalStringKEY_ALGORITHM="RSA";publicstaticfinalStrin... 阅读全文
posted @ 2014-08-30 11:19 徐小鱼 阅读(1086) 评论(0) 推荐(0)
摘要: packagetest;importjava.security.InvalidKeyException;importjava.security.Key;importjava.security.NoSuchAlgorithmException;importjavax.crypto.Cipher;imp... 阅读全文
posted @ 2014-08-30 11:19 徐小鱼 阅读(1436) 评论(0) 推荐(0)
摘要: 构建数字证书:keytool -genkeypair -keyalg RSA-keysize 2048 -sigalg SHA1withRSA -validity 36000 -alias www.lex.org -keystore lex.keystore或者:keytool -genkeypai... 阅读全文
posted @ 2014-08-30 11:18 徐小鱼 阅读(252) 评论(0) 推荐(0)
摘要: 散列函数(又称“哈希函数、单向函数、消息摘要函数”):广泛用于数据完整性验证。MD:消息摘要算法SHA:安全散列算法MAC:消息认证码算法数字签名:私钥签名,公钥验证。OSI参考模型五类安全服务中的三种认证服务:认证(鉴别)服务、抗否认服务和数据完整性服务。是先签名后加密,还是先加密后签名?典型的非... 阅读全文
posted @ 2014-08-30 11:17 徐小鱼 阅读(183) 评论(0) 推荐(0)
摘要: 基于消息队列的线程通信: 消息队列与线程循环 MessageQueue: 利用链表来管理消息。 Message: 通常由Handler的子类的handleMessage()函数来处理该消息。由android.os.Handler类来处理消息Message: Handle... 阅读全文
posted @ 2014-08-30 11:09 徐小鱼 阅读(1065) 评论(0) 推荐(0)
摘要: JAVA解析XML通常有两种方式:DOM和SAX。DOM(文档对象模型)是W3C标准,提供了标准的解析方式,但其解析效率一直不尽如人意,这是因为DOM解析XML文档时,把所有内容一次性的装载入内存,并构建一个驻留在内存中的树状结构(节点数)。如果需要解析的XML文档过大,或者我们只对该文档中的一部分... 阅读全文
posted @ 2014-08-30 11:07 徐小鱼 阅读(312) 评论(0) 推荐(0)
摘要: 本文章由Jack_Jia编写,转载请注明出处。文章链接:http://blog.csdn.net/jiazhijun/article/details/8892635作者:Jack_Jia 邮箱:309zhijun@163.com一、序言 目前Android市场充斥着大量的盗版软件,开发者的官方应... 阅读全文
posted @ 2014-08-30 11:04 徐小鱼 阅读(1601) 评论(0) 推荐(0)
摘要: 转自:http://blogs.360.cn/360mobile/2013/11/25/proxydelegate-application/#comment-77有的时候,为了实现一些特殊需求,如界面换肤、插件化等,我们希望改变应用的运行环境(surrounding)。例如,我们希望某个应用在运行时... 阅读全文
posted @ 2014-08-30 11:03 徐小鱼 阅读(1803) 评论(0) 推荐(0)
摘要: 针对没有logo的程序:使用adbshell下面命令方式打开adbshell#amstart-acom.example.textcom.example.text.MainActivityamstart-ncom.android.browser/com.android.browser.BrowserA... 阅读全文
posted @ 2014-08-30 11:00 徐小鱼 阅读(256) 评论(0) 推荐(0)
摘要: 第一种办法:将核心代码用JNI写进so库中。由于so库的反编译和破解的难度加大,所以这种方式防止反编译效果不错。缺点是,对于Java层的代码没有保护作用,同样可以被篡改。第二种办法:在线签名比较。在程序初始化时,联网将运行的程序的签名与服务器上的官方标准签名进行比较,从而达到让反编译后的程序无法正常... 阅读全文
posted @ 2014-08-30 10:58 徐小鱼 阅读(332) 评论(0) 推荐(0)
摘要: //查看公钥openssl pkcs7 -inform DER -in android_.rsa -noout -print_certs -text//查看证书指纹keytool -printcert -file cert.rsa 阅读全文
posted @ 2014-08-30 10:57 徐小鱼 阅读(191) 评论(0) 推荐(0)
摘要: 对Dex进行完整性的检查,可通过CRC,或者Hash值。可将校验值放到String资源文件里,或者放到服务器中。在代码中完成校验值对比逻辑,此部分代码后续不能再改变,否则CRC值会发生变化;从生成的APK文件中提取出classes.dex文件,计算CRC值,或Hash值,将计算出的值放入string... 阅读全文
posted @ 2014-08-30 10:55 徐小鱼 阅读(762) 评论(0) 推荐(0)
摘要: 属性检测//判断当前设备是否是模拟器。如果返回TRUE,则当前是模拟器,不是返回FALSE public static boolean isEmulator(Context context){ try{ TelephonyManager tm = (TelephonyManager) context... 阅读全文
posted @ 2014-08-30 10:53 徐小鱼 阅读(693) 评论(0) 推荐(0)
摘要: 判断是否存在的代码: private static boolean c(Activity paramActivity) { List localList = ((ActivityManager)paramActivity.getSystemService("activity")).getRunnin... 阅读全文
posted @ 2014-08-30 10:52 徐小鱼 阅读(190) 评论(0) 推荐(0)
摘要: //通过各手机管理软件,如如360、豌豆荚等查看//使用命令行,可以查看到permission、packagename、title、versionCode等aapt dump badging ~/Downloads/youku.apk//apk指纹keytool -printcert -file *... 阅读全文
posted @ 2014-08-30 10:51 徐小鱼 阅读(1291) 评论(0) 推荐(0)
摘要: //步骤/*先把tcpdump给push进模拟器或者手机中*///adb push test.txt /tmp/text.txtadd push tcpdump /data/local/tmp//安装apkadb install *.apk//进入shell模式,即linux命令中adb shell... 阅读全文
posted @ 2014-08-30 10:50 徐小鱼 阅读(421) 评论(0) 推荐(0)
摘要: //加载器,apkPath为包含dex文件的.apk或jar路径,dexPath是优化后的dex文件路径,第三个表示libraryPath表示Native库的路径,最后是父类加载器DexClassLoader classLoader= new DexClassLoader(apkPath, dexP... 阅读全文
posted @ 2014-08-30 10:49 徐小鱼 阅读(2109) 评论(0) 推荐(0)
摘要: 对Dex进行完整性的检查,可通过CRC,或者Hash值。可将校验值放到String资源文件里,或者放到服务器中。1. 在代码中完成校验值对比逻辑,此部分代码后续不能再改变,否则CRC值会发生变化;2. 从生成的APK文件中提取出classes.dex文件,计算CRC值,或Hash值,3. 将计算出的... 阅读全文
posted @ 2014-08-30 10:46 徐小鱼 阅读(1285) 评论(0) 推荐(0)
摘要: android.os.Debug类提供了isDebuggerConnected()用于检测是否有调试器链接;AndroidManifest的application节点中加入android:debuggable="false"是程序不可被调试; 验证方法--检测是否可以被调试: if( ... 阅读全文
posted @ 2014-08-30 10:45 徐小鱼 阅读(1383) 评论(0) 推荐(0)
摘要: [X]Java反射机制允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性或方法,可动态生成类实例、变更属性内部以及调用方法。public class Reflection{ public void methA(){}public void methodB(){}}以下代码完成对Ref... 阅读全文
posted @ 2014-08-30 10:43 徐小鱼 阅读(264) 评论(0) 推荐(0)
摘要: 破除android手势密码:(这部分看雪论坛里的截图。)进入shell命令,将/data/system/gesture.key删除后,任意手势密码均可进入。Root掉的手机,直接删除/data/system/gesture.key应该也是可以的吧。进入shell命令,将/data/system/pa... 阅读全文
posted @ 2014-08-30 10:41 徐小鱼 阅读(182) 评论(0) 推荐(0)
摘要: adb forward tcp:31415 tcp:31415drozer console connectrun app.package.list -f baidu 查看包名run app.package.info -a com.baidu.netdisk 查看包信息run app.pack... 阅读全文
posted @ 2014-08-30 10:39 徐小鱼 阅读(287) 评论(0) 推荐(0)
摘要: 很多恶意程序会释放新的程序,启动新的进程,这通过Runtime来实现:Process process= Runtime.getRuntime().exec("getprop ro.kernel.qemu");DataOutputStream os=new DataoutPutStream(proce... 阅读全文
posted @ 2014-08-30 10:33 徐小鱼 阅读(236) 评论(0) 推荐(0)
摘要: 以下每一条代码,无论其通过什么方式被调用,在哪个类里被调用,传入什么参数,都具有唯一不变性(在逆向出来的的smali文件里),故可以作为匹配的凭证。网络操作相关:Ljava/net/URL;->openConnection()Ljava/net/URLConnection;Ljava/net/Htt... 阅读全文
posted @ 2014-08-30 10:29 徐小鱼 阅读(541) 评论(0) 推荐(0)
摘要: 并不是说申请了这些权限的apk应用就是危害的,但是某些危害行为必须申请对应的权限。android.permission.ACCESS_NETWORK_STATE android.permission.INTERNET 访问网络连接,可能产生GPRS流量android.permission.ACCES... 阅读全文
posted @ 2014-08-30 10:29 徐小鱼 阅读(311) 评论(0) 推荐(0)
摘要: 有些apk安装完后无法卸载,现在收集了一些方法,以及个人的一些手段。1. 假设该app名为ketech,安装包名为ketech.apk。2. 查看/data/app里面是否有名称包含ketech的apk或zip包,有可能为类似com.android.ketech.apk或com.android.ke... 阅读全文
posted @ 2014-08-30 10:22 徐小鱼 阅读(1435) 评论(0) 推荐(0)
摘要: 误打误撞的进入了android逆向这一领域,也在北京实习了一年的时间,从无到有,经历了很多。平时的笔记主要在evernote上,现在整理一下发出来以共享。也给自己画一个短暂的逗号。本系列的有很多都是参考网上的内容片断,尽量找到原内容链接,如果没有,见谅。。。。 阅读全文
posted @ 2014-08-30 10:18 徐小鱼 阅读(144) 评论(0) 推荐(0)
摘要: android-sdk\tools和android-sdk\platform-tools添加到环境变量(emulator -version,adb version)。android-ndk-r8添加到环境变量(进入android-nkd-r8\samples\,输入ndk-build,编译工程文件)... 阅读全文
posted @ 2014-08-30 10:18 徐小鱼 阅读(119) 评论(0) 推荐(0)