感谢xctf提供学习平台

https://adworld.xctf.org.cn

crackme有壳,脱壳部分见文章:

https://www.cnblogs.com/hongren/p/12633232.html

查看字符串:

跟踪来到right,推测为成功时的标志。

来到这里,往上翻能看到核心代码以及输入和输出的指令

输入的字符串放在了[edp-38]这个位置。程序是先循环,判断了字符串长度

eax作为计数器,最后与0x2A比较

核心算法部分,主要是与“this_is_not_flag”异或,之后与402150位置比较,eax再次充当计数器,402150处数据位dword,4位,所以40108D处eax*4。

输入的字符串42位,但是给的异或只有16位,通过and操作解决

402150处数据, 改变显示方式:

将这部分数据复制出,之后删除掉前边的地址,将“000000”替换位“,0x”再加上方括号,就可以直接编写python脚本使用。

最后附上整个注释分析图(右键查看可放大)和python代码

 1 a=[0x12 ,0x04 ,0x08 ,0x14
2 ,0x24 ,0x5C ,0x4A ,0x3D
3 ,0x56 ,0x0A ,0x10 ,0x67
4 ,0x00 ,0x41 ,0x00 ,0x01
5 ,0x46 ,0x5A ,0x44 ,0x42
6 ,0x6E ,0x0C ,0x44 ,0x72
7 ,0x0C ,0x0D ,0x40 ,0x3E
8 ,0x4B ,0x5F ,0x02 ,0x01
9 ,0x4C ,0x5E ,0x5B ,0x17
10 ,0x6E ,0x0C ,0x16 ,0x68
11 ,0x5B ,0x12 ,0x00 ,0x00 ]
12
13 b="this_is_not_flagthis_is_not_flagthis_is_no"
14 flag=""
15 for i in range(len(b)):
16 flag = flag+chr(ord(b[i])^a[i])
17 print(flag)

xctf攻防世界——crackme writeup的更多相关文章

  1. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  2. XCTF攻防世界web进阶练习—mfw

    XCTF攻防世界web进阶练习-mfw题目为mfw,没有任何提示.直接打开题目,是一个网站 大概浏览一下其中的内容,看到其中url变化其实只是get的参数的变化查看它的源码,看到有一个?page=fl ...

  3. 攻防世界--crackme

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/088c3bd10de44fa988a3601dc5585da8.exe 1.准备 获取 ...

  4. 逆向-攻防世界-crackme

    查壳,nSpack壳,直接用软件脱壳,IDA载入程序. 很明显,就是将402130的数据和输入的数据进行异或,判断是否等于402150处的数据.dwrd占4字节. 这道题主要记录一下刚学到的,直接在I ...

  5. 攻防世界RE1 writeup

    解题过程 将题目给出的exe文件拖入ida中,查看main函数. 分析函数的逻辑,发现用户需要输出一个字符串,存储到变量v9中.如果v9的值与v5的值相等则会打印unk_413e90中的值,否则打印a ...

  6. Xctf攻防世界—crypto—Normal_RSA

    下载压缩包后打开,看到两个文件flag.enc和pubkey.pem,根据文件名我们知道应该是密文及公钥 这里我们使用一款工具进行解密 工具链接:https://github.com/3summer/ ...

  7. 攻防世界 WEB 高手进阶区 XCTF Web_python_template_injection Writeup

    攻防世界 WEB 高手进阶区 XCTF Web_python_template_injection Writeup 题目介绍 题目考点 SSTI模板注入漏洞 Writeup 知识补充 模板注入:模板引 ...

  8. 攻防世界 WEB 高手进阶区 XCTF Web_php_unserialize Writeup

    攻防世界 WEB 高手进阶区 XCTF Web_php_unserialize Writeup 题目介绍 题名考点 PHP反序列化漏洞 正则匹配 Writeup <?php class Demo ...

  9. 攻防世界 WEB 高手进阶区 XCTF 4th-CyberEarth ics-06 Writeup

    攻防世界 WEB 高手进阶区 XCTF 4th-CyberEarth ics-06 Writeup 题目介绍 题目考点 掌握暴力破解手段 Writeup 打开链接 http://220.249.52. ...

随机推荐

  1. HTML 5标签中<button>的新属性

    <button> 标签HTML5 中的新属性 属性 值 描述 autofocus autofocus 规定当页面加载时按钮应当自动地获得焦点. disabled disabled 规定应该 ...

  2. Java进阶--Java动态代理

    JDK version: 1.8 动态代理中所说的"动态", 是针对使用Java代码实际编写了代理类的"静态"代理而言的, 它的优势不在于省去了编写代理类那一点 ...

  3. (静默安装)Cent OS 6_5(x86_64)下安装Oracle 11g

    Cent OS 6_5(x86_64)下安装Oracle 11g 1 硬件要求   1.1 内存 & swap 物理内存不少于1G 硬盘可以空间不少于5G swap分区空间不少于2G Mini ...

  4. java 第五课 异常

    1.为什么使用异常? 若没有异常处理机制,会使用流程控制语句if  switch等来处理异常情况,程序复杂 2.捕捉异常try catch finally 3.方法中抛出异常throw(throw 可 ...

  5. 一个基于canvas的移动端图片编辑器

    欢迎使用 canvas_mobile_drag 项目地址:https://github.com/xiaosu95/canvas_mobile_drag 点击查看demo(在移动端上查看) 该插件是一款 ...

  6. makefile管理项目

    makefile: 管理项目. 命名:makefile Makefile --- make 命令 1 个规则: 目标:依赖条件 (一个tab缩进)命令 1. 目标的时间必须晚于依赖条件的时间,否则,更 ...

  7. RocketMQ4.7.1双主双从集群搭建

    导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...

  8. 如果在Yii中,使用AR查询,不直接写sql,则在使用的时候会报错

    如果在Yii中,使用AR查询,不直接写sql,则在使用的时候会报错 Student::find() ->select("id,name,from_unixtime(create_tim ...

  9. MySQL索引分析及使用

    一.索引介绍 1.1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此 ...

  10. 简单red5+obs推流实现直播系统开发,具体设置介绍

    前言:随便搞搞,先放一张效果图,