网站首页 包含标签 安卓 的所有文章

  • Google Play Store v34.2.14

    Google Play Store谷歌商店,谷歌应用市场,Android安卓系统官方应用商店客户端。Google Play客户端现在为应用和游戏,电影和图书引入全新设计,视觉外观及工具栏更加符合Android最新设计风格趋势。 软件截图 版本特点 可以免费使用所有受 Google LVL 授权验证保护的应用,离线验证授权! 例如:有很多用户都很纠结为什么有时候装了谷歌服务和商店却还是无法运行一些大型的免验证游戏,其实是因为谷歌市场更新后加入了实时验证机制,简单的说就是如果你没有添加信用卡或者历史记录没有下载过你在玩的付费游戏的话,就算是免验证的破解游戏都有可能无法通过验证,这个特别版就是解决这问题。 增强付费应用退款功能,点退款应用不会被卸载,无需退款前备份应用。 禁止自动更新,以上无需使用幸运破解器来实现。 下载地址蓝奏网盘...

    2023-02-05 279
  • 安卓大师兄影视v3.0.0去广告VIP绿化版

    软件介绍 大师影视,安卓影视聚合应用,采集全网影视资源,跟大部分的影视应用稍有不同,大师兄影视主要采用自建高清源,片源存储国内服务器,所有视频无广告水印,支持蓝光1080P/倍速播放/TV投屏功能。 软件截图 版本特点 解锁VIP、去首页横幅广播 去分享标签,界面更加美观 去我的标签无用界面更简洁 禁止开机自启,去更新提示 下载链接:https://dufeng.lanzoum.com/iggwU0jyzbaf ...

    2023-01-03 487
  • 安卓逆向 -- 自吐算法(MAC)

    一、MAC算法源码 import javax.crypto.Macimport javax.crypto.spec.SecretKeySpecString bs= "逆向有你a";SecretKeySpec key = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申请一个密钥,长度内容随便写Mac mac = Mac.getInstance("HmacSHA256");//告诉系统我用的加密码方式是HmacSHA256mac.init(key);byte[] macres = mac.doFinal(bs.getBytes(StandardCharsets.UTF_8));//开始加密System.out.println("HmacSHA1加密(字节):"+Arrays.toString(macres));System.out.println("HmacSHA1加密(字符串):"+bytes2HexString(macres));SecretKeySpec key1 = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申请一个密钥,长度内容随便写Mac mac1 = Mac.getInstance("HmacSHA256");//告诉系统我用的加密码方式是HmacSHA256mac1.init(key1);mac1.update("逆向".getBytes(StandardCharsets.UTF_8));mac1.update("有你".getBytes(StandardCharsets.UTF_8));byte[] macres1 = mac1.doFinal("a".getBytes(StandardCharsets.UTF_8));System.out.println(bytes2HexString(macres1)); 二、分析源码,需hook的内容 1、hook类是javax.crypto.Mac,javax.crypto.spec.SecretKeySpec 2、hook的方法:SecretKeySpec,doFinal 三、hook源码 XposedBridge.hookAllMethods(XposedHelpers.findClass("javax.crypto.Mac", loadPackageParam.classLoader) , "doFinal", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param); Log.e("逆向有你", "Stack:", new Throwable("stack dump")); if(param.args.length==2) return; Mac mc = (Mac) param.thisObject;//实例化 String algorithm = mc.getAlgorithm();//获取加密算法的名称 if (param.args.length == 2) { byte[] params = (byte[]) param.args[0]; String data = new String(params); String datahex = b2s(params); String datab64 = Base64.encodeToString(params, 0); Log.d("逆向有你",algorithm+"data:"+data); Log.d("逆向有你",algorithm+"datahex:"+datahex); Log.d("逆向有你",algorithm+"datab64:"+datab64); } byte[] res=(byte[])param.getResult(); String reshex = b2s(res); String resb64 = Base64.encodeToString(res, 0); Log.d("逆向有你",algorithm+"resulthex:"+reshex); Log.d("逆向有你",algorithm+"resultb64:"+resb64); Log.d("逆向有你","========================================================================"); } });XposedBridge.hookAllConstructors(XposedHelpers.findClass("javax.crypto.spec.SecretKeySpec", loadPackageParam.classLoader) , new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param); Log.e("逆向有你", "Stack:", new Throwable("stack dump")); byte[] secretKey = (byte[]) param.args[0]; int offset=0; int size=0; String algorithm=null; if (param.args.length != 2) { offset = ((Integer) param.args[1]).intValue(); size = ((Integer) param.args[2]).intValue(); algorithm = (String) param.args[3]; }else { size=secretKey.length; algorithm= (String) param.args[1]; } byte[] keyres=new byte[size]; System.arraycopy(secretKey,offset,keyres,0,size); String keyreshex = b2s(keyres); String keyresb64 = Base64.encodeToString(keyres, 0); Log.d("逆向有你",algorithm+"secretkey:"+new String(keyres)); Log.d("逆向有你",algorithm+"secretkeyhex:"+keyreshex); Log.d("逆向有你",algorithm+"secretkeyb64:"+keyresb64); Log.d("逆向有你","========================================================================"); } }); 四、运行结果 禁止非法,后果自负 ...

    2021-09-29 534
  • 安卓逆向 -- 自吐算法(MD5和SHA)

    一、主要框架,hook代码主要填写在try代码块里 package com.bucuo.a20210908; import android.app.Application;import android.content.Context;import android.util.Log;import de.robv.android.xposed.IXposedHookLoadPackage;import de.robv.android.xposed.XposedBridge;import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;import de.robv.android.xposed.IXposedHookLoadPackage;import de.robv.android.xposed.XC_MethodHook;import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; public class hook implements IXposedHookLoadPackage { public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable { Log.d("逆向有你", "hook成功"); try{ }catch (Exception e){ e.printStackTrace(); } } public String b2s(byte[] bt){ StringBuffer sb=new StringBuffer(); int i=0; while (i<bt.length){ int k=bt[i]; int j=k; if (k<0){ j=k+256; } if (j<16){ sb.append("0"); } sb.append(Integer.toHexString(j)); i+=1; } return sb.toString(); }} 二、MD5算法实现源码(SHA算法同理) import java.security.MessageDigest; String bs= "逆向有你a";MessageDigest md=MessageDigest.getInstance("MD5");//我要用md5算法md.update(bs.getBytes());//我要加密的数据byte[] res = md.digest();//给我加密System.out.println("MD5加密(字节):"+Arrays.toString(res));System.out.println("MD5加密(字符串):"+bytes2HexString(res)); MessageDigest mdmd = MessageDigest.getInstance("MD5");mdmd.update("逆向".getBytes(StandardCharsets.UTF_8));mdmd.update("有你".getBytes(StandardCharsets.UTF_8));byte[] mdmdres = mdmd.digest("a".getBytes(StandardCharsets.UTF_8));System.out.println(bytes2HexString(mdmdres)); 三、分析要hook的地方 1、hook的类就是导入的包,即“java.security.MessageDigest” 2、update可以使用多次(如果hook这里会无限循环), digest只能使用一次(这里是hook点) 四、知道hook的类及方法名,开始编写代码 XposedBridge.hookAllMethods(XposedHelpers.findClass("java.security.MessageDigest", loadPackageParam.classLoader) , "digest", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param); Log.e("逆向有你", "Stack:", new Throwable("stack dump")); MessageDigest md = (MessageDigest) param.thisObject;//实例化 String algorithm = md.getAlgorithm();//获取加密算法的名称 if (param.args.length >= 1) { byte[] params = (byte[]) param.args[0]; String data = new String(params); String datahex = b2s(params); String datab64 = Base64.encodeToString(params, 0); Log.d("逆向有你",algorithm+"data:"+data); Log.d("逆向有你",algorithm+"datahex:"+datahex); Log.d("逆向有你",algorithm+"datab63:"+datab64); } byte[] res=(byte[])param.getResult(); String reshex = b2s(res); String resb64 = Base64.encodeToString(res, 0); Log.d("逆向有你",algorithm+"resulthex:"+reshex); Log.d("逆向有你",algorithm+"resultb64:"+resb64); Log.d("逆向有你","========================================================================"); } }); 禁止非法,后果自负 ...

    2021-09-29 522

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注