GACTF2020 checkin

题目虽然是签到题。但是我刚开始不知道该如何入手。

  1. 查看字符串,没有发现有用的内容。
  2. 有人会习惯性查看import table 应该学习。
  3. 除了有详细的地方需要动态调试之外,当静态看不出什么时,应该先动态调试起来。
  4. 动态调试时f8开始走,跑飞时f7进入。抽丝剥茧。不是无脑f8 f7。要注意使用的api 函数等等。
  5. GetCommandLineA :检索当前进程的命令行字符串(即获取内容的api)
  6. CreateProcessA:创建新进程

Ruby打包exe工具ocra

特点:exe会对脚本和ruby程序进行释放,然后调用ruby.exe去执行脚本。而脚本本身在被释放时是以源码形式存放着的,可直接打开。即该工具并不会保护脚本。

因此,打包的程序通过动态调试,发现释放的位置,就可以找到源程序了。但这可能只是该工具如此,其他ruby打包工具不一定如此。

 

 

解题过程:

在我OD载入并运行时出现了这情况。在ocr88A.tmp\src文件夹下看到了checkin.rb

别人是在动态调试时发现了路径

checkin.rb源码如下

require 'openssl'  
require 'base64'  

 
def aes_encrypt(key,encrypted_string)
	aes = OpenSSL::Cipher.new("AES-128-ECB")
	aes.encrypt
	aes.key = key
	cipher = aes.update(encrypted_string) << aes.final
	return Base64.encode64(cipher) 
end

print "Enter flag: "
flag = gets.chomp

key = "Welcome_To_GACTF"
cipher = "4KeC/Oj1McI4TDIM2c9Y6ahahc6uhpPbpSgPWktXFLM=\n"

text = aes_encrypt(key,flag)
if cipher == text
	puts "good!"
else
	puts "no!"
end

AES加密:密文 密钥 加密模式都给了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值