http://bbs.pediy.com/showthread.php?p=1365122
|
|
KSSD
|
注册账号 | 搜索论坛 | 日历事件 | 论坛帮助 |
|
|
主题工具 | 显示模式 |
杨剑超
普通会员
资 料:
注册日期: Jan 2015
帖子: 111
精华: 1
现金: 14 Kx
致谢数: 0
获感谢文章数:2 获会员感谢数:10 |
工具:IDA6.6,不会发图,只能用文字描述了。
研究过《遇见》登录的同学可能都知道,只要修改过APK,在登录时都会提示软件盗版。 经研究登录时safecode字段有问题,可能是验证了签名。在libiaroundnet.so中Java_net_iaround_utils_NativeLibUtil_aaa实现。 步骤1:下载 http://gdown.baidu.com/data/wisegame...yujian_570.apk 步骤2: 步骤3: 步骤4: 步骤5:
代码:
JNIEXPORT jstring JNICALL Java_net_iaround_utils_NativeLibUtil_aaa (JNIEnv *env, jobject ob, jobject paramContext, jobject paramPackageInfo, jstring paramString1, jstring paramString2) {SHA1Context context;jstring ret=0;JNIEnv* p_env=env;char cifferbuf[128]={0};char buf[64]={0};jclass obClass=env->GetObjectClass(ob);char *pString="()Ljava/lang/String;";jmethodID reusltID=p_env->GetMethodID(obClass,"getPackageName","()Ljava/lang/String;");jobject retObject=p_env->CallObjectMethod(paramContext,reusltID);jboolean boolean=0;const char *str=p_env->GetStringUTFChars((jstring)retObject,&boolean);bool cmpResult=strcmp("net.iaround",str);if(cmpResult==0){ret=p_env->NewStringUTF("123456");}else{char destBuffer[128]={0};const char* s1=p_env->GetStringUTFChars(paramString1,&boolean);const char *s2=p_env->GetStringUTFChars(paramString2,&boolean);__android_log_print(4, "logfromc", "%s",s1);__android_log_print(4, "logfromc", "%s",s2);int len1=strlen(s1);int len2=strlen(s2);memcpy(destBuffer,s1,len1);memcpy(destBuffer+len1,s2,len2);jclass packageInfo= p_env->GetObjectClass(paramPackageInfo);ret=(jstring)packageInfo;if(packageInfo){jfieldID signatures=p_env->GetFieldID(packageInfo,"signatures","[Landroid/content/pm/Signature;");ret=(jstring)signatures;if(signatures){jobjectArray sigarray=(jobjectArray)p_env->GetObjectField(paramPackageInfo,signatures);if(sigarray){jsize sigLength=p_env->GetArrayLength(sigarray);if(sigLength>0){jobject ob=p_env->GetObjectArrayElement(sigarray,0);if(ob){jclass jc=p_env->GetObjectClass(ob);if(jc){jmethodID id=p_env->GetMethodID(jc,"toCharsString","()Ljava/lang/String;");if(id){jstring sigString =(jstring)p_env->CallObjectMethod(ob,id);const char* sigStr=p_env->GetStringUTFChars(sigString,&boolean);int passLen=strlen(destBuffer);memcpy(cifferbuf,sigStr+16,32);//__android_log_print(4, "logfromc", "%s",sigStr+16);//memcpy(cifferbuf,"a00302010202044e549d3a300d06092a",32);memcpy(cifferbuf+32,destBuffer,passLen);__android_log_print(4, "logfromc", "cifferString:%s",cifferbuf);SHA1Reset(&context);int cifferlen=strlen(cifferbuf);SHA1Input(&context,cifferbuf,cifferlen);//memset(&v51, 48, 0x29u);memset(buf,0,sizeof(buf));if(SHA1Result(&context)){sprintf(buf, "%08X%08X%08X%08X%08X", context.Message_Digest[0],context.Message_Digest[1],context.Message_Digest[2],context.Message_Digest[3],context.Message_Digest[4]);}else{__android_log_print(4, "logfromc", "ERROR-- could not compute message digest\n");}ret=p_env->NewStringUTF(buf);}}}}}}}}return ret; } 这时代码的意图就明显了 这时可以得出该APK包是利用了签名加密后到服务器验证的。服务器计算出safecode和收到的safecode不一样时,反馈软件盗版。。 此贴只供学习,如做其它用途,后果自负。 |
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
共 7 位会员 感谢 杨剑超 发表的文章: |
bengou (2015-04-17), leeven超人 (2015-11-23), Lnju (2015-04-18), sunwood (2015-06-11), weishi (2016-01-13), zhczf (2015-04-18), 雪衫 (2015-04-18) |
最佳答案 - 作者: 杨剑超 |
在哪删帖,我要删帖!!!!!!!!!!!!!!!!!!!!! |
杨剑超
普通会员
资 料:
注册日期: Jan 2015
帖子: 111
精华: 1
现金: 14 Kx
致谢数: 0
获感谢文章数:2 获会员感谢数:10 |
在哪删帖,我要删帖!!!!!!!!!!!!!!!!!!!!!
|
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
exile
普通会员
资 料:
注册日期: Jun 2007
帖子: 1,203
精华: 1
现金: 2074 Kx
致谢数: 24
获感谢文章数:36 获会员感谢数:36 |
点一下编辑就行了 哈哈 被警告了吧
|
||
[培训]15PB软件安全培训,看雪会员有优惠!
|
杨剑超
普通会员
资 料:
注册日期: Jan 2015
帖子: 111
精华: 1
现金: 14 Kx
致谢数: 0
获感谢文章数:2 获会员感谢数:10 |
引用:
最初由 exile发布
点一下编辑就行了 哈哈 被警告了吧 那倒是没有,感觉这个我技术太水了。。想技术好点以后再出来发贴 |
||
[培训]15PB软件安全培训,看雪会员有优惠!
|
exile
普通会员
资 料:
注册日期: Jun 2007
帖子: 1,203
精华: 1
现金: 2074 Kx
致谢数: 24
获感谢文章数:36 获会员感谢数:36 |
引用:
最初由 杨剑超发布
那倒是没有,感觉这个我技术太水了。。想技术好点以后再出来发贴 我觉得你写的挺好的 |
||
[培训]科锐逆向培训!看雪会员减免200元!
|
cnywco
初级会员
资 料:
注册日期: Nov 2005
帖子: 75
精华: 0
现金: 179 Kx
致谢数: 0
获感谢文章数:0 获会员感谢数:0 |
写的很不错啊。、
|
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
杨剑超
普通会员
资 料:
注册日期: Jan 2015
帖子: 111
精华: 1
现金: 14 Kx
致谢数: 0
获感谢文章数:2 获会员感谢数:10 |
引用:
最初由 cnywco发布
写的很不错啊。、 你要导入JNI.h,识别JNIENV的数据结构,然后自己阅读代码,才能理解,上面是我根据我的理解重新写的。 PS:我KX不够,不能和你悄悄话 |
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
elianmeng
普通会员
资 料:
注册日期: Sep 2008
帖子: 611
精华: 1
现金: 994 Kx
致谢数: 0
获感谢文章数:4 获会员感谢数:5 |
MARK
|
||
[培训]科锐逆向培训!看雪会员减免200元!
|
zhczf
初级会员
资 料:
注册日期: Feb 2007
帖子: 274
精华: 0
现金: 199 Kx
致谢数: 388
获感谢文章数:0 获会员感谢数:0 |
这么好的技术文章,就不要删除了
|
||
[培训]科锐逆向培训!看雪会员减免200元!
|
Lnju
普通会员
资 料:
注册日期: Dec 2014
帖子: 32
精华: 1
现金: 49 Kx
致谢数: 16
获感谢文章数:1 获会员感谢数:1 |
学习了 感谢分享!!
|
||
[培训]科锐逆向培训!看雪会员减免200元!
|
cqzhou
初级会员
资 料:
注册日期: Dec 2010
帖子: 100
精华: 0
现金: 10 Kx
致谢数: 3
获感谢文章数:1 获会员感谢数:1 |
不错哦 继续加油
|
||
[培训]15PB软件安全培训,看雪会员有优惠!
|
vVv一
初级会员
资 料:
注册日期: Aug 2014
帖子: 25
精华: 0
现金: 75 Kx
致谢数: 0
获感谢文章数:0 获会员感谢数:0 |
赞一个 长知识了~
|
||
[培训]科锐逆向培训!看雪会员减免200元!
|
fanweiriu
初级会员
资 料:
注册日期: Jun 2008
帖子: 16
精华: 0
现金: 147 Kx
致谢数: 0
获感谢文章数:0 获会员感谢数:0 |
这个也就是通过c++部分再回调java的
|
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
chmlqw
初级会员
资 料:
注册日期: May 2009
帖子: 24
精华: 0
现金: 55 Kx
致谢数: 21
获感谢文章数:0 获会员感谢数:0 |
貌似IDA6.6 自动导入了jni.h这个文件了
|
||
[公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮!
|
杨剑超
普通会员
资 料:
注册日期: Jan 2015
帖子: 111
精华: 1
现金: 14 Kx
致谢数: 0
获感谢文章数:2 获会员感谢数:10 |
引用:
最初由 chmlqw发布
貌似IDA6.6 自动导入了jni.h这个文件了 这个我不知道,反正我的IDA没有看不到相关的数据结构 |
||
[培训]15PB软件安全培训,看雪会员有优惠!
|
|
添加到书签 |
|
|
|
相似的主题 | ||||
主题 | 主题作者 | 论坛 | 回复 | 最后发表 |
如果没有遇见“你” | lijingli | 7)看雪十周年专版 | 26 | 2014-06-06 03:35:10 |
调试逆向 【求助】【求助】调试中 遇见一个函数zwqueryobject | fwoi | 『软件调试逆向』 | 19 | 2008-11-07 09:27:13 |
【求助】脱壳中遇见的问题 | xinghong | 『求助问答』 | 1 | 2008-09-08 11:16:58 |
【原创破解驱动PC/SC遇见麻烦!! | www | 『求助问答』 | 0 | 2008-07-27 11:52:58 |
【求助】脱ASPack 2.12 -> Alexey Solodovnikov遇见的问题 | 糖醋鱼 | 『求助问答』 | 3 | 2008-01-31 12:14:44 |
|
|
联系我们 - 看雪学院 - 文字模式 - 返回顶端
|
http://bbs.pediy.com/showthread.php?p=1365122相关推荐
- [转自“看雪论坛”]RtlAdjustPrivliege (http://bbs.pediy.com/showthread.php?t=76552)
前言: 今天逆向一个非常实用的函数RtlAdjustPrivliege 这个函数封装在NtDll.dll中(在所有DLL加载之前加载),被微软严格保密,就是说你在MSDN上查不到关于他的任何信息. 先 ...
- android逆向快手,[原创] 快手签名-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com...
整理了下,发现还有个和达达类似套路的,一起看看吧. 抓包 发送短信验证码POST /rest/n/user/requestMobileCode?app=0&lon=146.3516&d ...
- 火绒软件测试初学者,火绒初步评测-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com...
求大神们轻喷-- 注:本文测试主要依据3.x版本的病毒库,但是4.x环境依然有效 0x0 调试了好几个晚上,在茫茫汇编代码里,在无穷无尽的各种结构体里,太容易绕晕了,一个结构体套一个结构体,一个指针一 ...
- android安全分析师,乐固分析-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com...
简介: 调试手机是Android 6.0的32位的手机.样本是自己写的一个demo小程序.加固时间为今年的12月中旬左右. Java层分析 壳的入口是MyWrapperProxyApplication ...
- C语言写花指令,[原创]写花指令-加壳脱壳-看雪论坛-安全社区|安全招聘|bbs.pediy.com...
[原创]写花指令 2013-8-16 15:41 9889 [原创]写花指令 2013-8-16 15:41 9889 花指令,就是一串用来迷惑反编译器的汇编指令,它是利用编译器线性扫描算法的缺陷来达 ...
- 174.127.195.210/bbs/index.php?,[漏洞exploit工具-mona系列4] mona实战系列
PS:本帖只发布些已有的mona实战的帖子,大部分来自互联网搜索结果,这里只给出链接. 来自corelan团段的 稳定通用的ROP链库,过DEP的同学可以看看 https://www.corelan. ...
- [转载]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密)
标 题: [原创]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密) 作 者: rick 时 间: 2006-09-29,23:16:28 链 接: http://bbs.pediy. ...
- arm汇编学习(二)
一.STMFD SP!,{R4-R7,R11,LR} 表示依次把R4-R7,R11,LR放入SP中,LR在高位 参考: http://blog.chinaunix.net/uid-26435987-i ...
- java代码(dex)注入
首先简单介绍一下进程注入的概念: 进程注入就是将一段代码拷贝到目标进程,然后让目标进程执行这段代码的技术.由于这样的代码构造起来比较复杂,所以实际情况下,只将很少的代码注入到目标进程,而将真正做事的代 ...
最新文章
- linux 添加动态链接库路径
- 使用eclipse svn塔建(配置)时的一点点心得
- python柱状图挨在一起_echarts多个柱状图展示问题(bar都挤到一起了)
- 在过程中要正式批准可交付成果_干货!软考高项项目管理知识体系5大过程组47个过程...
- 等概率随机函数的实现(对立事件的产生)
- CMD中文显示为乱码
- 萤火虫算法matlab实现,智能算法萤火虫算法Matlab源代码
- 压力换算公斤单位换算_压力与重量换算(公斤换算压力)
- Mac修改hosts方法
- Typora免费版(Typora最后一个版本下载)
- 4个方法,教你1分钟查询你的手机注册了多少软件和网站
- C语言用随机函数做猜拳游戏,c语言猜拳游戏
- HW--DSF服务配置文件
- logback使用配置详解
- uva 12325 宝箱
- 张三的奶牛踩花:C++用贪心法解POJ3262_Protecting the Flowers问题
- 用DIV+CSS技术设计的餐饮美食网页与实现制作(web前端网页制作课作业)HTML+CSS+JavaScript美食汇响应式美食菜谱网站模板
- error: src refspec XXX matches more than one
- 基本共射放大电路的动态分析(低频、Ri、Ro大小对电路影响的分析)
- 鼠友题库每日百题(十)