这题是一个32位VC程序,运行有交互:

如果查看一下这个程序的字符串,会发现里面有一个flag,不过是假的:


扔进IDA,发现代码都在main函数内。

401095和4010BC分别调用了printf和scanf,这两个函数手动重命名一下。这里是调用printf提示用户输入密钥,然后调用scanf接收输入,然后是计算输入密钥长度,要求是等于24,如果不等就结束程序。

4010F6应该是花指令,没什么用,直接无视。401100开始是把输入密钥倒着复制到40336C。紧接着做了一些算术运算,先加1再异或6:

处理过后拿来与 402124 的数据进行对比,相同的话密钥就正确。

分析结束,只需把 402124 的数据先异或6再减一,然后逆序后就能得到正确密钥,这个逆算法还是很简单的。

rdata = [0x78, 0x49, 0x72, 0x43, 0x6A, 0x7E, 0x3C, 0x72, 0x7C, 0x32, 0x74, 0x57, 0x73, 0x76, 0x33, 0x50, 0x74, 0x49, 0x7F, 0x7A, 0x6E, 0x64, 0x6B, 0x61]for i in range(len(rdata)):rdata[i] ^= 6rdata[i] -= 1rdata = rdata[::-1]for x in rdata:print(chr(x), end="")

【攻防世界002】EasyRE相关推荐

  1. 攻防世界逆向高手题之EasyRE

    攻防世界逆向高手题之EasyRE 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向高手题的EasyRE 下载附件,照例扔入exeinfope中查看信息: 64位ELF文件,无壳,照例扔入IDA64中查 ...

  2. 攻防世界 MISC 新手练习区 writeup 001-006

    攻防世界 MISC 新手练习区 题目解答 文章目录 001 this_is_flag 002 pdf 003 如来十三掌 004 give_you_flag 005 stegano 006 坚持60s ...

  3. 攻防世界Reverse进阶区-EasyRE-writeup

    1. 介绍 本题是xctf攻防世界中Reverse的进阶区的题EasyRE. 下载下来以后是一个exe文件:210f1e18ac8d4a15904721a2383874f5.exe 2. 分析 首先看 ...

  4. 攻防世界 新手练习区 MISC+WEB

    攻防世界 新手练习区MISC+WEB MISC 新手练习区 002 pdf 方法1 方法2 003 如来十三掌 004 give_you_flag 005 stegano 006 坚持60s 007 ...

  5. 刷攻防世界crypto

    小白刷攻防世界crypto新手区 001 base64 002 Caesar 003 Morse 004 幂数加密 005 Railfence 006 不仅仅是Morse 007 混合编码 008 e ...

  6. XCTF攻防世界练习区-web题(新手)

    XCTF攻防世界练习区-web题(新手) https://adworld.xctf.org.cn/task?now_checked_num=3&name=web 001 view_source ...

  7. 【攻防世界001】Guess-the-Number

    攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...

  8. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

  9. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

最新文章

  1. Python的常用包有哪些,分别有什么作用?
  2. OpenJudge/Poj 1163 The Triangle
  3. springcloud的理解
  4. 技术中国论坛版本升级了!
  5. 将检索出来的列按逗号拼接起来
  6. python运维开发之第八天(socket)
  7. 21个js 技巧收藏
  8. 知乎面试官:为什么不建议在 MySQL 中使用 UTF-8?
  9. mysql考试_mysql考试总结
  10. 让人头大的Tablet PC
  11. 基于DDS的信号源设计
  12. spring源码解析专栏导航
  13. 降低网站跳出率9种方法
  14. 关于泛型中包含级联的List转化为json数据的处理
  15. python取前三位_python的字符串截取||取字符串前三位
  16. 系统提示内部服务器错误是怎么回事,XP系统提示“HTTP500内部服务器错误”是怎么回事...
  17. android SAF存储访问框架
  18. 一个程序员的基本素养(转载)
  19. Network of Thrones --基于社区发现算法和图分析Neo4j解读《权力的游戏》(详细!)
  20. 海王PHP面试,海王满天飞,offer收割机遍地跑,从四非到985,双跨不易何其幸运...

热门文章

  1. 成功解决极其刁钻bug之TypeError: ‘<=‘ not supported between instances of ‘list‘ and ‘int‘
  2. 成功解决AttributeError: ‘dict_values‘ object has no attribute ‘index‘
  3. Matlab:成功解决Undefined function or variable B
  4. BigData:绘制2018年福布斯中国富豪榜人名坐标地图(解决多个人名显示在同一个家乡地点)
  5. PS:将webp后缀图片最简单最快速的方法另存为png后缀的图片
  6. 未完全关闭数据库导致ORA-01012: not logged的解决
  7. 天才大猩猩可可去世,享年 46 岁
  8. Scanner类的基本总结
  9. MyBatis无限输出日志
  10. js/jquery判断浏览器 停止加载