吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4194|回复: 37
上一主题 下一主题

[Android 原创] 2018ddctf安卓RSA-ida动态调试so(180423-每日破解)

  [复制链接]
跳转到指定楼层
楼主
发表于 2018-4-23 23:10 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 小白670 于 2018-4-24 09:04 编辑

虽然这个题目叫RSA,但是跟RSA关系并不大,出题人很皮。题目的代码不容易静态分析,需要使用动态调试的方法。
IDA动态调试详细教程https://blog.csdn.net/feibabeibei_beibei/article/details/52740212

反编译分析可知,程序加载了so库,并且用so库里的stringFromJNI()函数来判断输入



在lib目录下,找到libhello-libs.so文件,拖进ida分析,在exports中找到关键函数


双击进去分析,然后一键F5,得到代码如下:


进入上图的关键函数,静态分析,只能得出输入的字符串长度要等于36,后面的循环有点乱,是出题人故意扰乱的,不过大概可以知道是将输入的数据和程序中的数据异或,程序中的数据如下:






到这一步,就不得不使用动态调试了,不过在动态调试前还得做一些准备工作,首先用andriodkiller打开apk,如图加上debugger条件,然后编译,把编译后的apk放到手机或者模拟器上,然后用ida打开这个新的apk的libhello-libs.so



先运行android_server文件,出现下面的提示既成功了,上面有教程具体怎么做



然后端口转发,启动程序


接着打开ddms,没有的要自己百度了,我弄了挺久的,有点麻烦


可以看到我们要调试的程序,然后


Port是调试程序的jdwp进程号,一般8700都是用来调试的,其他的不变照着输就好了

接着就是设置ida了



Process option里设置这个


Debugger option里设置这个






在attach to process 前,先下断点

然后attach to process



随便输入一些数据,程序停在断点,进入关键函数,看到这里在比较字符串长度是否等于0x24



跳过这里,为了分析具体的变化,我们在ida里面加上watch,




然后在watch里面右键选择add,加上要查看的的寄存器



加上一些常用的寄存器后,效果如下:R0里是我输入的字符串



接着往下分析,下图是异或的过程


异或完后来到了一个很复杂的循环里,动态分析很容易得出是在判断arr是否等于arr[i+10],i从0到26,程序里加了多个循环,但其实效果跟我说的是一样的,如果是这样的话,那其实有效字符串变成了10个



可以看到,这里如果不等于的话就跳转到失败,但是每次手动改寄存器的值有比较麻烦,所以我这里修改了函数代码,反正已经知道它到底是干嘛的。
因为ida不支持直接修改代码,所以我们只能走弯路


设置如上后我们可以看到指令的机器码了,我这里是已经改好的,把原来的D0改成D1了






然后需要找到代码在so文件中的偏移,首先找到so文件的base,然后用那条指令的地址一减就得到了偏移0x9CF6,接着在010editor里面编辑,先跳到偏移量,




修改后如下,但是还没结束,还需要用andriodkiller重新编译,然后换新的apk和so文件调试········




以上步骤有点繁琐,但是修改代码后就可以直接跳过那烦人的判断了,总的来说还是值得的,我在比赛后看大佬博客才知道还可以set ip跳过·······







取前十个字符,进行下一步操作



下面是将前10个字符传进atoll函数,将字符转换为long long 整数,非常关键


分析得知结果存储在R0和R1,低位存在R0,高位存在R1



第二个j_j_j__ZNSt3mapIciSt4lessIcESaISt4pairIKciEEEixERS3函数有用,它把字符jlocpnmbmbhikcjgrla转换为新的数字字符串,



接着把这串字符串转化数字



然后用这个数字除以我们之前那十个字符转化的数字,



最后就是判断条件了






后面还有我就不贴了,分析可以得知只有当10个字符转化的数字为5889412424631952987的因数,且是较小的那个时,才返回正确,否则错误。分解大数倒是跟RSA有点关系,用数学工具可以得到结果


脚本如下:
[C++] 纯文本查看 复制代码
byte_4DECB=[0x55, 0x1, 0x58, 0x41, 0x5D, 0x47, 0x5A, 0x42, 0xE, 0x54,0x56, 0x52, 0x4A, 0x4E, 0x44, 0x49, 0x5E, 0xD, 0x8, 0x56,0x42, 0x40, 0x5E, 0x5A, 0x1, 0x9, 0x51, 0x2, 0x41, 0x54,0x59, 0x45, 0x56, 0x5E, 0x56, 0x5C]
##key=1499419583
key=[0x31,0x34,0x39,0x39,0x34,0x31,0x39,0x35,0x38,0x33]
j=0
str=''
for i in range(len(byte_4DECB)):
    byte_4DECB[i]^=key[j]
    j=(j+1)%10
    str+=chr(byte_4DECB[i])
    print byte_4DECB[i]

print str



最后那个分析,我手推的,最后得出结论,要求5889412424631952987除以我们的数余数为0且要小于商。这次学到很多东西,基本上每一步都是从0开始学的,最后做出来非常开心,虽然还是个菜鸡,但是已经在慢慢成长了。最后附上一张我推最后过程的草稿:


免费评分

参与人数 14吾爱币 +15 热心值 +13 收起 理由
AnswerW3I + 1 + 1 用心讨论,共获提升!
但愿人長久 + 1 + 1 我很赞同!
dryzh + 2 就冲这个手推的算纸
jnez112358 + 1 + 1 谢谢@Thanks!
zzzlucas + 1 + 1 谢谢@Thanks!学习大佬操作
zt471402521 + 1 + 1 用心讨论,共获提升!
lumou + 1 + 1 用心讨论,共获提升!
Ine + 1 + 1 谢谢@Thanks!
fr33m4n + 1 + 1 用心讨论,共获提升!
wushaominkk + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
dibh10 + 1 + 1 用心讨论,共获提升!
oxxo119 + 1 + 1 热心回复!
kpa + 1 + 1 谢谢@Thanks!
FHY456 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2018-5-7 10:21 | 只看该作者
小白670 发表于 2018-4-25 08:31
如果没有jdb的话,下一个就好了,可能你的adb工具包里面没有带jdb,如果有jdb还有问题的话可以再问我

jdb我记得是在jdk里的,当时我也是没有在环境变量里找到,自己去jdk里文件夹下面找到了,把环境变量里的jre删去只保留jdk就可以在cmd里用了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
 楼主| 发表于 2018-4-25 08:31 | 只看该作者 |楼主
pghuanghui 发表于 2018-4-24 19:54
我想问问楼主,jdb未找到怎么回事?DDMS和手机也都ROOT了,也将Android_server打开了 就是没有jdb这个命令.

如果没有jdb的话,下一个就好了,可能你的adb工具包里面没有带jdb,如果有jdb还有问题的话可以再问我

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

板凳
发表于 2018-4-23 23:47 | 只看该作者

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

报纸
发表于 2018-4-23 23:50 | 只看该作者
看不到图啦

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

地板
 楼主| 发表于 2018-4-24 08:30 | 只看该作者 |楼主
Hmily 发表于 2018-4-23 23:47
发错版块了,都乱码了,给你编辑下,图片上传看这个:https://www.52pojie.cn/misc.php?mod=faq&action=faq ...

图片我待会弄,这个安卓破解不是发到这个版块么

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

7#
 楼主| 发表于 2018-4-24 08:31 | 只看该作者 |楼主

不好意思,昨天晚上发的,因为网站突然维护不能重新编辑了,我今天把图片发上来

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

8#
发表于 2018-4-24 08:53 | 只看该作者
棒棒的,支持一下

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

9#
 楼主| 发表于 2018-4-24 09:01 | 只看该作者 |楼主

谢谢支持

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

10#
发表于 2018-4-24 09:09 | 只看该作者
谢谢楼主,我最近在做这一道题 没有头绪,看了你的的帖子,有很多收获!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

11#
 楼主| 发表于 2018-4-24 09:20 | 只看该作者 |楼主
kpa 发表于 2018-4-24 09:09
谢谢楼主,我最近在做这一道题 没有头绪,看了你的的帖子,有很多收获!

能帮上忙太好了,不过这题有很多混淆代码,还有最后的判断条件我都没有细讲,时间精力有限

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

12#
发表于 2018-4-24 09:29 | 只看该作者
现在还看不懂,慢慢向大神学习,谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2018-5-23 01:49

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表