CTF-18-baby
题目名:baby.zip
提取码:u3rx
1.思路:解压zip文件夹后发现里面有个baby.exe。但是可执行文件打不开?
OK fine-->查壳->有壳去壳->若无壳->载入OD->分析汇编->反汇编->IDA操作
2.问题
- 壳?mmm汇编mov直接赋值
- 壳的概念->作者编好软件后,编译成exe可执行文件。
- 1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名等,即为了保护软件不被破解,通常都是采用加壳来进行保护。
- 2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩,
- 3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
- 实现上述功能,这些软件称为加壳软件。
3.使用工具
- PEID查壳工具
- 提取码:4far
- OD工具说明:OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。
- 提取码:dsdb
- !IDA静态反编译软件(推荐!好使)
- 提取码:5qf6
4.具体操作
- 下载压缩包解压后发现不能打开,先查壳:
- 发现无壳,载入OD后
- 发现一段赋值操作的代码,载入IDA,在主函数中找到这段代码:
- 选中每个语句按“R”转字符串,得到flag:flag{Re_1s_S0_C0oL}
链接:https://pan.baidu.com/s/1n914fnNoAe9jhVSCVbDSgg
提取码:k2h3
CTF-19-easy_vb
题目名:easy_vb.exe 提取码:sn8c
1.思路:解压zip文件夹后发现里面有个easy_vb.exe。需要输入注册码才能获取flag。
OK fine-->查壳->有壳去壳->若无壳->载入OD->分析汇编->反汇编->IDA操作
2.问题
- 无
3.使用工具
4.具体操作
- PEID查壳->发现是用VB6写的
- 发现无壳,载入OD后没啥用
- 载入IDA进行分析。Alt + t搜索字符串CTF,然后crtl + t搜索下一个字符串。
- 得到->flag ->MCTF{_N3t_Rev_1s_E4ay_}
CTF-20-easy_re
题目名:easy_re.zip 提取码:7jto
1.思路:文件内re1.exe+re1.idb--->这题好可爱哈哈哈-->发现要输入flag的
OK fine-->查壳->有壳去壳->若无壳->载入OD->分析汇编->反汇编->IDA操作
2.问题
- 无
3.使用工具
4.具体操作
- PEID查壳
- 载入IDA进行分析。Alt + t搜索字符串flag,然后crtl + t搜索下一个字符串。
- 来到这里发现xmmword后面有两串奇怪的字符串,我们将其选中按R键将其变成字符串发现
- 0tem0c1eW{FTCTUD'
- '}FTCTUD
- 从后往前读DUTCTF{We1c0met0DUTCTF}
CTF-21-南邮py交易
题目名:Py.pyc 提取码:j8my
1.思路:下载文件发现是pyc格式,先反编译看看长啥样。
2.问题
- 无
3.使用工具
- 在线反编译python的网站
- pycharm
4.具体操作
- 分析反编译出来的代码
- 首先输入一段字符串,进入encode函数之后与字符串correct进行比较
- encode函数就是将输入的字符串中每个字符ascii都与32进行异或运算,然后每个在加上16得到新的字符串,最后再将这个字符串进行base64加密。
- 所以我们只需将"XlNkVmtUI1MgXWBZXCFeKY+AaXNt"进行base64解密,再将每个字符ascii码都减16,接着与32异或即可得到flag
运行即可得到flag:nctf{d3c0mpil1n9_PyC}
#加密代码
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'#解密代码
import base64
b='XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
a=base64.b64decode(b)
for i in a:
j=i-16
j=j^32
print(chr(j),end='')CTF-22-逆向入门
题目名:admin.exe 提取码:b0fm
1.思路:打开admin.exe->说是版本不兼容->用notepad打开看看代码
2.问题
- Data URL将小图片生成数据流形式!
- Data URL给了我们一种很巧妙的将图片“嵌入”到HTML中的方法。跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换成base64编码的字符串形式
- Data URL讲解
3.使用工具
- notepad++
- 记事本
4.具体操作
- 新建一个记事本
- 将notepad里的代码复制到记事本双引号里面
- 保存,把记事本后缀改成.html
- 扫一扫,得到-》bugku{inde_9882ihsd8-0}