小白水一波CTF*更中reverse逆向(部分带视频操作)

2,523 阅读4分钟

CTF-18-baby

题目名:baby.zip

提取码:u3rx 

1.思路:解压zip文件夹后发现里面有个baby.exe。但是可执行文件打不开?

OK fine-->查壳->有壳去壳->若无壳->载入OD->分析汇编->反汇编->IDA操作

2.问题

  • 壳?mmm汇编mov直接赋值
  • 壳的概念->作者编好软件后,编译成exe可执行文件。 
  • 1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名等,即为了保护软件不被破解,通常都是采用加壳来进行保护。 
  • 2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩, 
  • 3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
  • 实现上述功能,这些软件称为加壳软件。

3.使用工具

4.具体操作
  • 下载压缩包解压后发现不能打开,先查壳:

  • 发现无壳,载入OD后

  • 发现一段赋值操作的代码,载入IDA,在主函数中找到这段代码:
  • 选中每个语句按“R”转字符串,得到flag:flag{Re_1s_S0_C0oL}

5.视频操作

链接: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.使用工具

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}