REVERSE-PRACTICE-BUUCTF-7
REVERSE-PRACTICE-BUUCTF-7
- Youngter-drive
- [ACTF新生赛2020]rome
- [FlareOn4]login
- [SUCTF2019]SignIn
Youngter-drive
exe程序,运行后提示输入flag,有upx壳,脱壳后ida分析
main函数中获取输入并拷贝,开启了两个线程分别运行StartAddress和sub_41119F两个函数,sub_411190函数验证输入,输入即为flag
分析StartAddress函数,input_index的初始值为29,当input_index的值大于-1时,调用sub_41112C函数,然后input_index值减1,休眠100ms
分析sub_41112C函数(反编译该函数需要先平衡栈),首先验证输入均为英文字母,然后对大小写区分,输入的内容的ascii码减去38或96的结果,作为下标,在table数组里取值,再赋给原来的位置,即对flag内容进行变换,实际上是大小写转换
回到main函数,再分析sub_41119F函数
该函数先休眠100ms,再对input_index减1,没有对flag内容的变换
于是可以知道,input_index初始值为29,在第一个线程作为下标对flag内容变换后减1,在第二个线程直接减1,相当于减2,值为27,再回到第一个线程……于是第一个线程仅在input_index为奇数时对flag内容进行变换
写逆脚本,由于input_index初始值为29,说明flag的内容长度为30,但是在check(sub_411190)函数中,只比较了29个字符,试出来最后一位是“E”提交成功
[ACTF新生赛2020]rome
exe程序,运行后提示输入,输入错误直接退出,无壳,ida分析
主逻辑在func函数中
第一个红框是对flag的内容变换,分大小写,原来是大写字母的变换后仍然是大写字母,原来是小写字母的变换后仍然是小写字母,如果flag的内容中某个字符为其他字符,则不进行变换
第二个红框是循环比较,验证flag的内容
写脚本即可得到flag
[FlareOn4]login
html文件,打开后提示输入flag并点击验证,右键->查看网页源代码
逻辑清晰,获取输入,输入变换,验证输入
重要的是flag.replace部分的内容
首先判断flag内容中某个字符是大写还是小写字母,如果是大写字母,>=左边取90,如果是小写字母,>=左边取122,再判断该字符在26个字母表中的位置,如果该字符在字母表的前半部分,则替换为字母表后半部分对应位置的字符,同理,如果该字符在字母表的后半部分,则替换为字母表后半部分对应位置的字符,字符的大小写不变
写逆脚本即可得到flag
[SUCTF2019]SignIn
elf文件,无壳,ida分析
main函数逻辑清晰,先获取输入,然后调用sub_96A函数分割输入,例如输入字符串的第一个字符为“f”,其十六进制ascii码为0x66,经过sub_96A函数,结果存储到v9,有v9[0]=0x6,v9[1]=0x6,然后v9数组转成整形作为RSA的明文m,接下来就是RSA加密和验证
在线网站或者yafu分解模数n
写脚本即可得到flag
REVERSE-PRACTICE-BUUCTF-7相关推荐
- BUUCTF Reverse/findKey
BUUCTF Reverse/findKey 先看文件信息:32位程序,没有加壳 打开看看,标题为find flag,也没啥有用的信息 IDA32位打开,找到start函数,看到有个main,跟随跳转 ...
- BUUCTF Reverse helloword、findit
BUUCTF Reverse helloword.findit helloword findit 一天一道CTF题目,能多不能少 记录一下这两道题,这两道题是安卓逆向的题目~ 第一次接触安卓逆向的题目 ...
- BUUCTF Reverse/Ultimate Minesweeper
BUUCTF Reverse/Ultimate Minesweeper 先看文件信息,没有加壳,且为net编写的程序 运行是一个扫雷游戏,只要点错一个就会自动退出(左上角显示的是雷的数目,一共有897 ...
- BUUCTF Reverse xor
题目:BUUCTF Reverse xor 一些犯傻后学到了新东西的记录 查壳,没壳,IDA打开 main函数很好理解,输入一个长度为33的字符串,1-32位与前一位异或后与global相等,则判定f ...
- BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker
BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...
- BUUCTF Reverse/[GWCTF 2019]pyre
BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...
- BUUCTF reverse题解汇总
本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...
- BUUCTF Reverse(helloworld)
BUUCTF Reverse(helloworld) 题目附件下载下来之后,是.apk后缀,所以可能是安卓逆向. 这里我用的工具是Android Killer,下载地址:https://xiazai. ...
- BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun
BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun 先看文件信息, IDA64位打开,很简单的题目,只要一个个输入就行 都是返回的这种元素 _BOOL8 __fastcall i ...
- [BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
网上大部分是动调,我尝试IDC解一下, 无壳,32位,放入IDApro,查看main函数 查看wrong和str函数,借出假的flag a=[0x66,0x6B,0x63,0x64,0x7F,0x61 ...
最新文章
- 在集群的操作机上执行命令为什么会出现权限被拒绝_如何使用 TDengine 2.0 最新开源的集群功能?
- pandas高效读取大文件(csv)方法之-parquet
- campaign read in WebUI - Fiori is correct!
- 1.0jpa 2.0_JPA 2.1实体图–第1部分:命名实体图
- laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...
- 趋势交易 高 更高_2020年为开发商带来什么,以及更多的行业趋势
- java接口自动化(五) - 企业级代码管理工具Git的配置
- Java读写二进制文件示例
- 【线性代数及其应用】04 -线性变换
- android个人日记本论文,手机app移动开发论文-个人心情日记本的设计实现 毕设论文.doc...
- phy芯片测试寄存器_DM9000寄存器功能详细介绍
- 一些最最基本的几何图形公式
- Android 谷歌发布support-v4、v7、v8、v16、v17包
- 工厂模式——烘烤OO披萨
- 雪花算法:分布式唯一 ID 生成利器
- 一下科技:未来短视频行业发展呈四大趋势
- SEO优化,外链重要还是友情链接重要?
- Win7停服,UOS如何应对?
- 西安电子科技大学数据结构考点大纲解析
- 【专题学习】Contiguity(进行中)
热门文章
- Dart基础学习02--变量及内置类型
- LoadRunner中Action的迭代次数的设置和运行场景中设置
- python画建筑分析图_教你用GH绘制酷炫的流线分析图
- string的反转输出以及char型字符串的反转输出
- python正则表达式group用法_【Python】正则表达式用法
- html全局浮窗,Html 实现浮动窗口
- tp5 php正则邮箱,TP5验证器使用实例
- ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3
- html5新增的js,HTML5新增属性data-*和js/jquery之间的交互及注意事项
- wince中BIB文件的详细介绍