REVERSE-PRACTICE-BUUCTF-29

[FlareOn1]Shellolololol

exe程序,直接不能运行,无壳,ida分析
简单F8单步调试发现,在sub_401000函数最后,有个lea eax, [ebp+var_201],然后call eax,这里会报错退出
shelll-logic
上x32dbg,来到call eax那里,F7单步步入
shell-calleax
可以看到对ds:[esi]进行异或运算,执行完这一段,在内存窗口看到"and so it begins"字符串
shell-begin
继续向下走,可以看到又有对ds:[esi]进行异或运算
shell-xor
执行完,在内存窗口可以看到另一段字符串
shell-ready
继续向下,再执行完两段对ds:[esi]的异或运算后,在内存窗口看到flag
shell-flag

[CFI-CTF 2018]powerPacked

elf for powerpc文件,有upx壳,使用工具脱壳后,ida分析
搜索字符串,看到一段不明意义的字符串
pp-strings
交叉引用过去,来到main函数,有个strcmp,还有个减2的运算
由"EHK"减2得"CFI",刚好和比赛的名字一样,于是可以确定程序的运算逻辑是将已知字符串循环减2,再和输入进行比较
pp-main
写脚本,最后加上"}"即为flag

data=[ord(c) for c in "EHK}kanqxgarqygtre"]
for i in range(len(data)):
    data[i]-=2
print(''.join(chr(i) for i in data))
# CFI{i_love_powerpc

[INSHack2018]Tricky-Part2

elf文件,无壳,ida分析
main函数,整体的效果是反调试
TP2-main
交叉引用字符串"Enter password : ",有两个地方引用,先来到abort_trap这里
获取输入,进入check函数验证输入
TP2-abort
check函数,直接比较输入和已知数据
TP2-check
写脚本即可得到flag

data=[73,78,83,65,123,89,48,117,95,115,104,48,117,108,100,95,107,110,
      48,119,95,116,104,52,116,95,49,95,99,52,110,95,116,114,49,99,107,95,
      121,48,117,114,95,100,51,98,117,103,103,51,114,125]
print(''.join(chr(i) for i in data))
#INSA{Y0u_sh0uld_kn0w_th4t_1_c4n_tr1ck_y0ur_d3bugg3r}

另一个引用"Enter password : "的地方,是对输入进行sha256散列,再与已知比较
TP2-other
哈希运算不可逆,而且对已得到的flag进行sha256散列,结果与已知不相同

import hashlib
s="INSA{Y0u_sh0uld_kn0w_th4t_1_c4n_tr1ck_y0ur_d3bugg3r}"
h=hashlib.sha256()
h.update(s.encode(encoding='utf-8'))
print(h.hexdigest())
# 6765e72305447e0c0bc65758ef29be67c8abe2a582ee5104fc2e5f7700f5fc6b

[CFI-CTF 2018]Automated Reversing

两个py文件,一个binaries文件夹
generator.py是对明文的变换,变换结果写到binaries文件夹的各个binary文件里,在那段明文中可以直接看到flag
AR-flag
solution.py是对变换结果进行逆变换,从binaries文件夹的各个binary文件里读取运算符和参与运算的数据,最后打印明文,也可获得flag
AR-flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P1umH0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值