ezmore

动调的题,跟进去在4019d6下断点看比较情况得到neft输入后得到flag组成提示

有手就行

一上来就猜入口是_main然后解到一个fake

s2 = [99,23,113,2,106,5,114,9,109,2,93,36,75,62,97,13,100,15,106,53,83,50,89,60,3,60,65]
s1 = [0]*len(s2)
s1[0] = 99
#~(*(v1 - 2) & v2) & (*(v1 - 2) ^ v2)
#~(s1[i-1] & s1[i]) & (s1[i-1] ^ s1[i])
for i in range(1,27):for j in range(0x20,0x7f):if (0xff - (s2[i-1]&j) )&(s2[i-1]^j) == s2[i]:s1[i] = j breakprint(bytes(s1))
#ctfshow{do_you_like_fake??}

再回来看main,入口在Game start前边

int __cdecl main(int argc, const char **argv, const char **envp)
{_DWORD v4[6]; // [esp+15h] [ebp-1Bh] BYREF__int16 v5; // [esp+2Dh] [ebp-3h]char v6; // [esp+2Fh] [ebp-1h]sub_401BF0();                                 // 真正入口puts("Game start");scanf("%s", &dword_406060);v4[0] = dword_406060;                         // 26v4[1] = dword_406064;v4[2] = dword_406068;v4[3] = dword_40606C;v4[4] = dword_406070;v4[5] = dword_406074;v5 = word_406078;v6 = byte_40607A;if ( !sub_4013F0(v4) )exit(0);return 0;
}

一直跳下去到401f20,主要逻辑就是互换,异或和移位,这里专门给函数改了个名字

_onexit_t sub_401F20()
{Buf2 = &dword_406060;                         // 输入内容 Buf2buf2_ex();sub_4012D0(sub_401600);                       // 比较sub_4012D0(buf2_xor_result);return sub_4012D0(buf2_add_7);
}

然后写出逆向程序

s2 = [0xDC,0x47,0x7F,0x6E,0x9A,0xD8,0x60,0x77,0xF4,0xB0,0x8C,0x54,0xB0,0xAA,0x26,0x23,0x02,0x42,0x8E,0xBA,0x90,0x8C,0xAB,0x86,0x24,0x6E,0xF8]
d_406480 = [256-i for i in range(256)]
d_406080 = (b'keykeykey'*100)[:256]
#交换码表
v1 = 0
r = 0
for i in range(256):v3 = d_406480[v1]r  = (d_406080[v1]+v3 + r)%256d_406480[v1],d_406480[r] = d_406480[r],v3v1+=1
#异或,+7
v0 = 0
tab = [0]*256
for i in range(27):v0 = (d_406480[i+1] + v0)%256d_406480[i+1],d_406480[v0] = d_406480[v0],d_406480[i+1]tab[i] = d_406480[(d_406480[v0] + d_406480[i+1])%256]print(chr((tab[i] ^ s2[i])-7), end='')#ctfshow{y0u_g0t_t4e_5ecret}

EzAutoRe

没有直接给附件而是给了远程环境。登上后直接得到base64编码的程序。

下下来发现有壳,用upx脱后,跟36D杯BBBigEqSet极为相似都是用numpy.linalg.solve()求解行列式的128个解,唯一区别就是每次写到的变量不是接顺序的,这个需要读写入变量位置

将原来的程序稍加改动。另外直接搜索下的upx3.96脱壳工具大多是国内包装过有window界面的,需要到github上下命令行执行的原生版本。

from pwn import *
from base64 import b64decodep = remote('pwn.challenge.ctf.show', 28138)
context.log_level = 'debug'p.recvuntil(b'-------------------------------------------------\n')
data = p.recvuntil(b'-------------------------------------------------\n', drop=True)
open('EzAutoRe', 'wb').write(b64decode(data))os.system('c:\\tools\\upx-3.96-win64\\upx.exe -d EzAutoRe')data = open('EzAutoRe','rb').read()
ta = []
tb = []
tmp = [0]*128
ptr = 0x1218
while ptr<len(data):idx = 0if data[ptr:ptr+3] == b'\x0f\xb6\x85': #movzx   eax, [rbp+var_C2] 存到哪个变量里idx = data[ptr+3]ptr+=10if data[ptr:ptr+2] == b'\x69\xd0':  #imul    edx, eax, 0ABA4h 开始读数据第1个tmp[idx] = u32(data[ptr+2: ptr+6])ptr+=6if data[ptr:ptr+2] == b'\x69\xc0':  #imul    eax, 0A755h 后续 多 add     edx, eaxtmp[idx] = u32(data[ptr+2: ptr+6])ptr+=8if data[ptr] == 0x3d:  #cmp     eax, 1A59D41Eh; jnz     loc_496B4tb.append(u32(data[ptr+1:ptr+5]))ta.append(tmp)tmp = [0]*128ptr+=11if data[ptr:ptr+5] == b'\x48\x8d\x3d\x85\x09':  #结束break import numpy as np
an = np.array(ta)
bn = np.array(tb)x = np.linalg.solve(an,bn)
print(x)
flag = bytes([round(i) for i in x])
print(flag)p.sendline(flag)
p.recv()
p.interactive()
#ctfshow{0105ed6e-4395-49a9-a0e3-59742d504cd4}       

[ctf.show.reverse] 吃鸡杯 ezmore,有手就行,EzAutoRe相关推荐

  1. [ctf.show.reverse] 吃瓜杯 签层饼,Tea_tube_pot

    签层饼 真有一千层函数呀,沿着输入存入的两个变量找,找到3个函数: 主函数给出了flag的组织方式, check1说number2<882408, check2说number1 = number ...

  2. 在计算机的游戏怎样打开,电脑上那个吃鸡游戏怎么打开 | 手游网游页游攻略大全...

    发布时间:2016-12-21 cpu 最近虽然英雄联盟s7正在如火如荼地进行着,网络平台上最火的游戏却是绝地求生(吃鸡).但是不同于英雄联盟,吃鸡对于电脑的要求还是比较苛刻的,之前玩lol的主机拿来 ...

  3. 手游无限级服务器,吃鸡无限服务器忙碌 | 手游网游页游攻略大全

    发布时间:2017-07-01 正版手游请吃鸡,全新大逃杀玩法上线在即,彻底颠覆回合传统,以超高自由度挑战生存极限,玩出策略回合新花样! 即将上线的全民求生玩法将回合特色与大逃杀创新结合,与传统回合相 ...

  4. 吃鸡无限服务器,吃鸡无限服务器忙碌 | 手游网游页游攻略大全

    发布时间:2017-07-01 正版手游请吃鸡,全新大逃杀玩法上线在即,彻底颠覆回合传统,以超高自由度挑战生存极限,玩出策略回合新花样! 即将上线的全民求生玩法将回合特色与大逃杀创新结合,与传统回合相 ...

  5. ctfshow 2021/7/9-10 吃鸡杯 6题

    群主说要出简单的题目大家把这题想简单一点 直接把c转字符串即可 from libnum import * print(n2s(7539424334663709603622451394173266049 ...

  6. [CTFshow]吃鸡杯

    在?看看密码 给了一个vmem文件,内存取证 搞密码肯定一开始想到系统用户的密码 volatility --profile=Win7SP1x64 -f looklookpassword.vmem hi ...

  7. CTFshow-吃鸡杯-RE

    吃鸡杯RE 1.ezmore 2.有手就行 题目地址:https://ctf.show/challenges 1.ezmore 1.初步分析 exe文件,直接运行,可知要得到与flag相关的信息需要输 ...

  8. ctfshow-吃鸡杯-Crypto-Writeup

    吃鸡杯部分wp Crypto Cop! Run!! 题目 思路 才艺表演 海那边漂来的漂流瓶 群主说要出简单的题目大家把这题想简单一点 The Dedication of Suspect M Misc ...

  9. 香肠派对电脑版_《香肠派对》是不是除了《和平精英》最成功的吃鸡手游:靠恶搞火了?...

    我们知道,自从<绝地求生>自国内外火了之后,国内陆续上线了大大小小不少于10款各种类型的吃鸡手游,从最早的<丛林法则>.到瞬间倒下的<荒野行动>,再到现在最火的&l ...

最新文章

  1. python tf_TF 2.1.0-rc2发布,2020年停止支持Python 2
  2. 社交搜索Graph Search技术解析
  3. jvm classLoader 过程
  4. spring mvc 提示_Spring BootHibernate提示
  5. 用C#连接到数据库实现学生学籍管理系统
  6. 1.jenkins持续集成-jenkins安装
  7. IDEA Tomcat控制台中文乱码
  8. Python科学计算系列2—不等式和不等式组
  9. MyBatis连接池的实现原理分析
  10. 服务器网站gzip压缩,网站实现Gzip网页压缩的方法与步骤 提高网页浏览速度
  11. 数据结构课程 -- 学期总结
  12. sql round函数(case函数)
  13. nvidia-patch解除nvidia消费级显卡编码并发数量限制操作记录
  14. 女子连WiFi结果收到巨额话费单:有些WiFi其实是收费的
  15. 计算机考研是属于工学呢还是理学呀,计算机考研是属于工学呢还是理学
  16. 阿里云服务器ECS如何临时升级带宽?
  17. python逐行调试_python如何单步调试
  18. Python 编程1000例(5):拿鸡蛋问题和回文数问题
  19. 中兴2018届应届生在线编程测验0829 数学家排成平行四边形问题
  20. 抓取WIFI空中包工具--OmniPeek

热门文章

  1. 输入一个用户名,点击登录按钮,如果输入tom,提示“已存在“,否则提示“欢迎使用“
  2. “四舍五入”到“四舍六入五凑偶”
  3. WPF教程(十四)文本框
  4. 音频监控叫好又叫座 核心部件拾音器怎么装?
  5. 显卡驱动、CUDA(cuda-toolkit)、CUDNN介绍
  6. minepy、treePlotter导包的问题
  7. 【控制control】四足机器人动力学模型-SLIP
  8. Ubuntu桌面放大随鼠标移动
  9. traceroute和tracert的原理
  10. 苹果禁止使用热更新???