博客园主题又更新啦~,细节等你发现!

【网鼎杯】jocker--部分代码加壳逆向处理

 

 

 

Main函数,用户输入flag,长度为24位

Wrong函数进行了简单的异或操作

Omg函数进行异或操作,根据提示来看应该是假check

Encrypt无法生成伪代码

发现有加壳以及自修改,下断点动调

输入与hahaha_do_you_find_me?进行了18次异或与密文进行比对,通过动调修改edx寄存器的值,看eax的值提取出密文

得出密文

复制代码
a = [14,13,9,6,19,5,88,86,62,6,12,60,31,87,20,107,87,89,13]

写python脚本

复制代码
a = [14,13,9,6,19,5,88,86,62,6,12,60,31,87,20,107,87,89,13]
s = "hahahaha_do_you_find_me?"
flag = ""
for i in range(19):
    flag += chr(ord(s[i]) ^ a[i])
print(flag)

#flag{d07abccf8a410c

得出的flag少五位

重新输入flag进行动调走到最后一部分

用了随机数,没有密文,直接开猜。与用户输入相异或的是”%tp&:”,由于最后一位flag一定是},’:’^’}’=71所以勇敢牛牛,不畏艰难,建议直接开整。

得出最后五位是b37a}

Getflag

复制代码
flag{d07abccf8a410cb37a}

 

posted @   maao233  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示