关于反编译后显示盗版
来源:互联网 发布:手机灯牌软件 编辑:程序博客网 时间:2024/05/24 20:07
反编译后显示盗版,有可能在服务器端校验,也有可能是本地校验。
我以压缩包形式打开apk,删除签名信息重新签名,安装好后打开,提示盗版。可以肯定这是签名校验。
用androidkiller打开,搜索signatures,找到获取签名的位置,在用jd-gui查看java代码
public static String getAPPSecretString(Context paramContext) { String str1 = paramContext.getPackageName(); try { PackageInfo localPackageInfo = paramContext.getPackageManager().getPackageInfo(str1, 64); String str2 = digest(localPackageInfo.signatures[0].toByteArray()); return str2; } catch (PackageManager.NameNotFoundException localNameNotFoundException) { localNameNotFoundException.printStackTrace(); } return ""; }
digest函数只是对签名信息做处理,我没有关心它。
继续查找哪里调用了getAPPSecretString()
查看代码
if (localHttpResponse.getStatusLine().getStatusCode() != 200) { break label649; }
发现这是服务器端校验签名
if (this.updateItem.getStatus() == 1103) { this.mHandler.sendEmptyMessage(1000); }
在handleMessage里
if (paramAnonymousMessage.what == 1000) { BlackName.this.popKuangInfo(); return; }
而这个popKuangInfo()提示 VerLog.v(“有侵权”);并且会调用一个AlertDialog,这个dialog正好与盗版提示吻合。
for (String str1 = "确定";; str1 = "下载") { str2 = "退出"; AlertDialog.Builder localBuilder = new AlertDialog.Builder(this.mContext); localBuilder.setTitle(this.updateItem.getTitle()); localBuilder.setMessage(this.updateItem.getDescription()); localBuilder.setPositiveButton(str1, this.mWarnClick); localBuilder.setNegativeButton(str2, this.mWarnClick); localBuilder.setCancelable(false).show(); return; }
由于只知道error返回1103会显示盗版,所以我直接让getStatus的返回值为其他(1101)
.method public getStatus()I .locals 2 .prologue .line 23 iget v0, p0, Lcn/easymobi/checkversion/item/UpdateItem;->status:I const/16 v1,0x44d return v1.end method
编译过后,正常进入app,接下来就可以进行购买破解了
0 0
- 关于反编译后显示盗版
- Winform 工程反编译后窗体如何显示
- 关于盗版的一点思考
- 关于JVM INSTR iadd(混淆后的反编译)
- 盗版
- 盗版?
- 如何防止android软件被反编译,破解盗版
- 盗版 Win7 试用到期后黑屏咋办
- 关于XP反盗版补丁的解决
- 关于软件盗版问题的一些思考
- 一个案例讲解:APK反编译重新打包后 -- 地图不显示;定位功能失效等解决方法
- 关于android使用dexjar反编译后的classes.dex.dex2jar.jar为什么jd gui打不开?
- 盗版用户误装sp2后恢复正常技巧
- XP升级后开机出现盗版提示解决方法
- 解决XP升级后开机出现盗版提示方法
- 莫之许:盗版将成中国后发劣势
- 关于Android APK反编译
- 关于android反编译
- MySQL CRASH COURSE命令总结(第四章检索数据)
- Window TensorFlow(gpu)安装及坑的解决
- 定时任务执行两次
- Struts2:strut2的工作原理
- tsung转载整理 笔记1
- 关于反编译后显示盗版
- node+express 项目中ejs模板的使用
- C++11 封装小觑:从 std::array 看 C++11 风格
- php的延迟静态绑定
- 详解Paint的setXfermode(Xfermode xfermode)
- struts2:路径搜索与动态调用action
- 指针
- zoj 3747 递推好题
- 浅谈容易让你进入误区的7个错误网站设计思想