0517 libdroid MyDriver2-397 easy_go攻防世界
0x01
libdroid 攻防世界
工具
dex2jar+jd-gui
思路展开
下载下来附件,改为.zip后缀,解压出来得apk文件,apk文件再改.zip后缀,再解压,得到dex文件,dex2jar反编译,jd-gui打开。
接下来的操作对安卓开发的细节要充分了解,先搁在这,日后跟进。
32C3_this_is_build_for_flag_ship_phones
0x02
MyDriver2-397(windows驱动)
工具
IDA
思路展开
sys后缀,驱动,好吧,我是一脸懵逼。驱动已经提上日程了,还有上面的java的安卓开发(太菜了)。
先去看卸载函数
开关内存保护,然后把正确的地址写回去,从这出发,顺着线往上找,发现程序是用inline hook(如何看出inline hook)下图ff25,jmp e9/ff25
跳转的硬编码
进入sub_114D0
统计文件中字符次数,若大于8次,先执行sub_115dc,再执行sub_112b4写入byte_16390。进入sub_112B4
看byte_16390怎么来的,找到解密函数:
逆向算法解密,v1、v2通过sub_11DF0函数算出,两个参数1546720197和42。
the flag is A_simple_Inline_hook_Drv
逻辑:inline hook ntcreatefile 然后 统计 P_giveMe_flag_233.txt 打开的次数,如果是第九次 那么 就会把flag 写入到txt 里面,由于inlinehook所以不会往里写flag。
另一个思路:
此题从正向出发,先找DriverEntry,看逻辑,也可找到sub_113C8(),分析算法可得(有好几个函数,sub_113C8函数最像计算flag的函数,自己太菜,现在靠猜了,唉)
0x03
easy_go
工具
ida逆向去符号表脚本+gdb
思路展开
ida没符号表(符号表:平常打开ida都有函数名称指示,那个是main函数,那个是打印函数,本题打开发现没有这些指示,所有函数都是sub开头的通用表示,所以用脚本还原这些函数名)
IDA 7.0 如何使用 IDAGolangHelper插件
配置好后,执行脚本还原函数名称,找到main函数。
有个红色区域,猜测软件保护技术,所以采用动调,ida动调失败(有ida反调试,但ida改不了跳转,无奈放弃),所以采用gdb调试,在0x495318下断点调试,提示输入时,随便输入,flag就出来了。
flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}
0517 libdroid MyDriver2-397 easy_go攻防世界相关推荐
- 攻防世界 Pwn 进阶 第二页
00 这文章更重要的是对这些题进行一个总结,说一些值得注意的地方,写一些自己的理解. 为了形成一个体系,想将前面学过的一些东西都拉来放在一起总结总结,方便学习,方便记忆. 攻防世界 Pwn 新手 攻防 ...
- 【攻防世界001】Guess-the-Number
攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...
- 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...
- 攻防世界(Pwn) forgot---栈溢出;(方法二)
攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...
- 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk
[攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...
- 攻防世界 ——crypto
目录 新手区部分题解: 1,easy_RSA 2,Normal_RSA 3, 幂数加密 4,easy_ECC 高手进阶区部分题题解 5, ENC 6,告诉你个秘密 7,Easy-one 8,说我作弊需 ...
- 攻防世界———MISC 高手区题解
目录 1,base64stego 2,easycap 3,Avatar 4,What-is-this 5,签到题 6,Training-Stegano-1 7,Excaliflag 8,Get-the ...
- 攻防世界 web(二)
这周接着刷攻防世界的web题( ̄︶ ̄)↗ 1.command_execution 看提示这题为命令执行漏洞(command_execution),关于命令执行漏洞,我前面有篇博客详细介绍了,大家不了解 ...
- misc高阶 攻防世界_攻防世界 Misc 进阶题(一)
攻防世界 Misc 进阶题(一) 关于隐写术的思路或方法 转载: https://blog.csdn.net/a_small_rabbit/article/details/79644078 隐 ...
最新文章
- 判断出栈顺序是否正确(栈的压入、弹出序列)
- rails 数据库相关操作命令
- ext3分区修复linux,linux – 如何从损坏的ext3分区恢复数据?
- 3-6:常见任务和主要工具之正则表达式
- java中面向对象租车问题_答答租车系统-Java面向对象的学习
- Python IDLE换行写,一行写不下,如何换行继续写
- 智慧城市近两年来受到国家高度重视
- ibatis的缓存机制
- ROS系列:八、图像消息和OpenCV图像之间进行转换-cv_bridge
- 用userAgent判断手机类型
- web第六课:div标签和span标签
- MATLAB(3)MATLA 求极限 求积分 求微分 求级数的和
- java编译程序包不存在_在cmd下编译Java源文件文件出现程序包xxxx不存在
- android安全风险分析,Android安全检测报告,等保测评过不了,提示风险
- 证件照的尺寸规格和像素要求
- java aspx 验证码,asp 动态生成验证码
- js关闭当前页面 并 刷新主页面
- 什么是工作流开源框架?可提高办公效率吗?
- 数据库连接失败: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
- ICO和IPO的区别