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相关推荐

  1. BUUCTF Reverse/findKey

    BUUCTF Reverse/findKey 先看文件信息:32位程序,没有加壳 打开看看,标题为find flag,也没啥有用的信息 IDA32位打开,找到start函数,看到有个main,跟随跳转 ...

  2. BUUCTF Reverse helloword、findit

    BUUCTF Reverse helloword.findit helloword findit 一天一道CTF题目,能多不能少 记录一下这两道题,这两道题是安卓逆向的题目~ 第一次接触安卓逆向的题目 ...

  3. BUUCTF Reverse/Ultimate Minesweeper

    BUUCTF Reverse/Ultimate Minesweeper 先看文件信息,没有加壳,且为net编写的程序 运行是一个扫雷游戏,只要点错一个就会自动退出(左上角显示的是雷的数目,一共有897 ...

  4. BUUCTF Reverse xor

    题目:BUUCTF Reverse xor 一些犯傻后学到了新东西的记录 查壳,没壳,IDA打开 main函数很好理解,输入一个长度为33的字符串,1-32位与前一位异或后与global相等,则判定f ...

  5. BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker

    BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...

  6. BUUCTF Reverse/[GWCTF 2019]pyre

    BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...

  7. BUUCTF reverse题解汇总

    本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...

  8. BUUCTF Reverse(helloworld)

    BUUCTF Reverse(helloworld) 题目附件下载下来之后,是.apk后缀,所以可能是安卓逆向. 这里我用的工具是Android Killer,下载地址:https://xiazai. ...

  9. BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun

    BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun 先看文件信息, IDA64位打开,很简单的题目,只要一个个输入就行 都是返回的这种元素 _BOOL8 __fastcall i ...

  10. [BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker

    网上大部分是动调,我尝试IDC解一下, 无壳,32位,放入IDApro,查看main函数 查看wrong和str函数,借出假的flag a=[0x66,0x6B,0x63,0x64,0x7F,0x61 ...

最新文章

  1. 在集群的操作机上执行命令为什么会出现权限被拒绝_如何使用 TDengine 2.0 最新开源的集群功能?
  2. pandas高效读取大文件(csv)方法之-parquet
  3. campaign read in WebUI - Fiori is correct!
  4. 1.0jpa 2.0_JPA 2.1实体图–第1部分:命名实体图
  5. laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...
  6. 趋势交易 高 更高_2020年为开发商带来什么,以及更多的行业趋势
  7. java接口自动化(五) - 企业级代码管理工具Git的配置
  8. Java读写二进制文件示例
  9. 【线性代数及其应用】04 -线性变换
  10. android个人日记本论文,手机app移动开发论文-个人心情日记本的设计实现 毕设论文.doc...
  11. phy芯片测试寄存器_DM9000寄存器功能详细介绍
  12. 一些最最基本的几何图形公式
  13. Android 谷歌发布support-v4、v7、v8、v16、v17包
  14. 工厂模式——烘烤OO披萨
  15. 雪花算法:分布式唯一 ID 生成利器
  16. 一下科技:未来短视频行业发展呈四大趋势
  17. SEO优化,外链重要还是友情链接重要?
  18. Win7停服,UOS如何应对?
  19. 西安电子科技大学数据结构考点大纲解析
  20. 【专题学习】Contiguity(进行中)

热门文章

  1. Dart基础学习02--变量及内置类型
  2. LoadRunner中Action的迭代次数的设置和运行场景中设置
  3. python画建筑分析图_教你用GH绘制酷炫的流线分析图
  4. string的反转输出以及char型字符串的反转输出
  5. python正则表达式group用法_【Python】正则表达式用法
  6. html全局浮窗,Html 实现浮动窗口
  7. tp5 php正则邮箱,TP5验证器使用实例
  8. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3
  9. html5新增的js,HTML5新增属性data-*和js/jquery之间的交互及注意事项
  10. wince中BIB文件的详细介绍