攻防世界逆向入门题之open-source

继续开启全栈梦想之逆向之旅~
这题是攻防世界逆向入门题的open-source

下载附件得到源码:

#include <stdio.h>
#include <string.h>int main(int argc, char *argv[]) {//外部调用输入参数if (argc != 4) {//输入三个参数,因为第一个是程序自己的名称printf("what?\n");exit(1);}unsigned int first = atoi(argv[1]);if (first != 0xcafe) {//第一个参数的十六进制为0xcafeprintf("you are wrong, sorry.\n");exit(2);}unsigned int second = atoi(argv[2]);if (second % 5 == 3 || second % 17 != 8) {//第二个参数满足条件我口算有42,余数是不足才补的数,不是整除后剩的数。printf("ha, you won't get it!\n");exit(3);}if (strcmp("h4cky0u", argv[3])) {//第三个参数直接就是h4cky0uprintf("so close, dude!\n");exit(4);}printf("Brr wrrr grr\n");unsigned int hash = first * 31337 + (second % 17) * 11 + strlen(argv[3]) - 1615810207;//这里的结果hash与前面输入参数有关,鄙人不才,曾一度想修改源码不输入参数直接输出这句话,当然,没有参数的这句话就会报错。printf("Get your key: ");printf("%x\n", hash);return 0;
}

一开始第二个条件停了会,毕竟做题经验太少了,atoi返回的是字符串的整形,0xcafe是十六进制,整形和十六进制比较C语言内部会进行进制转换,一开始我用了十六进制转文本:

现在想想都羞愧~
应该用进制转换工具才对:

所以到此所有参数都解出来了,第一个是51966,第二个是42,第三个是h4cky0u.
在kali虚拟机中编译,命令行接受参数执行即可:

gcc 1.c
./1.c 51966 42 h4cky0u

后来看别人做法还发现了其他解法,第一个是直接修改源码,其实也对,源码在手当然是充分利用源码的优势才对,直接把hash输出语句替换成

 unsigned int hash = 0xcafe * 31337 + (second % 17) * 11 + strlen(argv[3]) - 1615810207;

即可,反正C语言内部会自己转换,记得把第二个0xcafe处的判断语句用/**/注释掉即可。

攻防世界逆向入门题之open-source相关推荐

  1. 攻防世界逆向入门题之流浪者

    攻防世界逆向入门题之流浪者 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向入门题的流浪者 下载附件,照例扔入exeinfope中查看信息: 32位PE文件无壳,照例扔入ida32中查看伪代码: 是没 ...

  2. 攻防世界逆向入门题之no-strings-attached

    攻防世界逆向入门题之no-strings-attached 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向入门题的no-strings-attached 下载附件: 扔入Exepeinfo中查壳和其 ...

  3. 攻防世界 crypto 入门题之easy_RSA

    攻防世界 crypto 入门题之easy_RSA 继续开启全栈梦想之逆向之旅~ 这题是攻防世界crypto 入门题之easy_RSA RSA的密码学听说了好久,主要是战队的队友之前有研究,而我却是一点 ...

  4. 攻防世界Misc入门题之掀桌子

    攻防世界Misc入门题之掀桌子 继续开启全栈梦想之逆向之旅~ 这题是攻防世界Misc入门题之掀桌子 题目是一串16进制数,因为只有0~f,不是base64,直接扔到十六进制转字符串: 好的,不知道转了 ...

  5. 攻防世界Misc入门题之坚持60s

    攻防世界Misc入门题之坚持60s 继续开启全栈梦想之逆向之旅~ 这题是攻防世界Misc入门题之坚持60s 下载附件,一开始我默认用压缩包对jar文件,搞到一解压出来还以为是某个游戏存档,后来才发现是 ...

  6. 攻防世界逆向高手题之reverse-for-the-holy-grail-350

    攻防世界逆向高手题之reverse-for-the-holy-grail-350 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向高手题的reverse-for-the-holy-grail-350 ...

  7. 攻防世界逆向高手题之dmd-50

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

  8. 攻防世界逆向高手题之re2-cpp-is-awesome

    攻防世界逆向高手题之re2-cpp-is-awesome 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向高手题的re2-cpp-is-awesome 下载附件,照例扔入exeinfope中查看信息: ...

  9. 攻防世界逆向高手题之re5-packed-movement

    攻防世界逆向高手题之re5-packed-movement 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向高手题的re5-packed-movement 下载附件,照例扔入exeinfope中查看信 ...

最新文章

  1. Godaddy如何导入导出MSSQL数据库
  2. docker进阶篇(一) ---- Volume(数据卷)
  3. 10.4 实现关系下的匿名内部类
  4. pc调试微信h5页面
  5. 条件概率分布_条件概率
  6. 华为ARP代理的三种方式
  7. java if if else语句_Java if else条件判断语句用法
  8. linux用sqlserver数据库,Linux下安装访问SQLSERVER2000数据库(附文件下载)
  9. 计算机程序设计流程图循环,流程图循环画法_流程图用什么办公软件
  10. 深度网络自适应DCC算法
  11. 微信小程地图片未加载成功的情况 Failed to load local image resource
  12. maven 安装配置 - vscode for java
  13. vs项目中的筛选器(filter)
  14. 计算机管理器找不到打印机驱动,电脑提示“无法找到打印机驱动程序包要求的核心驱动”解决方法...
  15. datanucleus+spring 的JDO操作 select save update delete
  16. 这是您正在找的大数据、人工智能实战培训课程!
  17. oracle rac密码,oracle rac如何修改密码,硬盘损坏如何恢复?
  18. 萌新卷妹带你逃出算法无名岛第六站
  19. 如何使用阿里云接口对系统用户【身份证】实名认证
  20. 【历史上的今天】8 月 8 日:中国第一个校园 BBS 成立;网景通信上市;EarthLink 创始人出生

热门文章

  1. AI实践之路:线性/逻辑回归背后的广义线性模型与最大似然估计
  2. vs2019 编译生成dll,lib,并做调用
  3. 编码规范汇总【持续更新】
  4. 【XR】为挑战性环境优化6DoF控制器追踪
  5. 内存卡弹出使用驱动器中的光盘之前需要将其格式化实测解决教程
  6. ssh: connect to host 192.168.1.20 port 22: No route to host解决方案
  7. 把梳子卖给和尚的故事
  8. 联想g400从u盘启动计算机,联想g400笔记本设置U盘启动的图文步骤
  9. Java编程练习之:转换罗马数字
  10. 英特尔2018年处理器一览