[H&NCTF] maybe_xor题解

打印 上一主题 下一主题

主题 863|帖子 863|积分 2589

maybe_xor

感觉这道逆向题与其说是考逆向水平,倒不如说是考编写脚本的能力
起首题目给了个远程地址,nc连接会回显ELF: 接一串base64编码的东东,解码后发现是ELF文件。
用IDA打开发现是从数据段读取24个字节到栈上并举行异或,每个字节异或的值都差别,但异或后的结果不会写回栈
程序的目的是让你算出异或后的字节数组并发送过去,并且这个过程会重复多次

调试可知,虽然每次文件的数据差别,程序入口差别,但汇编代码都差不多。只是每次数据段的偏移和异或值有变革罢了,写一个文件处理脚本即可
具体思绪看下面脚本注释即可
[code]from base64 import *from pwn import *import struct# context.log_level = 'debug'image_base = 0x8048000def get_hex():    f = open('elf', 'rb')     f.seek(0x18)    # 获取程序入口地址并转为文件偏移地址    EP = u64(f.read(8)) - image_base    # 获取数据的偏移地址    f.seek(EP + 7)    rsi = struct.unpack("

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表