逆向---入坑记

Hello,RE!

80

或许你需要去学习下IDA的使用,但是只需要学一点点就能做这题了
PS:IDA里面按R可以把奇怪的数字变成字符串

格式为flag{*****}包含flag{}提交

参考资料:
《IDA Pro 权威指南》
各种CTF比赛的逆向部分的writeup

http://ctf.nuptzj.cn/static/uploads/0b562710385edcf655dfa0ae65c69592/1.exe

入门题,直接丢到OD里运行:

 直接搜索中文字符:

 可以看到一个字符比较函数,在哪里加一个断点试试(F2)运行:

 可以看到 flag啦!!!

ReadAsm2

150

读汇编是逆向基本功。

给出的文件是func函数的汇编
main函数如下
输出的结果即为flag,格式为flag{**********},请连flag{}一起提交

编译环境为linux gcc x86-64
调用约定为System V AMD64 ABI
请不要利用汇编器,IDA等工具。。这里考的就是读汇编与推算汇编结果的能力

int main(int argc, char const *argv[])
{
  char input[] = {0x0,  0x67, 0x6e, 0x62, 0x63, 0x7e, 0x74, 0x62, 0x69, 0x6d,
                  0x55, 0x6a, 0x7f, 0x60, 0x51, 0x66, 0x63, 0x4e, 0x66, 0x7b,
                  0x71, 0x4a, 0x74, 0x76, 0x6b, 0x70, 0x79, 0x66 , 0x1c};
  func(input, 28);
  printf("%s
",input+1);
  return 0;
}

参考资料:
https://github.com/veficos/reverse-engineering-for-beginners
《汇编语言》王爽
《C 反汇编与逆向分析技术揭秘》

http://ctf.nuptzj.cn/static/uploads/a480ff52cdbc70bd1443763f27f35279/2.asm

把下载的汇编文件打开后(记事本就行):

然后写一个小程序即可:

a = [0x0, 0x67, 0x6e, 0x62, 0x63, 0x7e, 0x74, 0x62, 0x69, 0x6d,

0x55, 0x6a, 0x7f, 0x60, 0x51, 0x66, 0x63, 0x4e, 0x66, 0x7b,

0x71, 0x4a, 0x74, 0x76, 0x6b, 0x70, 0x79, 0x66 , 0x1c]

s = ''

for i in range(1,len(a)):
    print(a[i]^i,end = " ")
    s += chr(a[i]^i)
print()
print (s)

运行即可

得到flag;

Py交易

150

Python 2.7

提取密码:kd37

下载后直接丢到py反汇编的在网站:

让后写一个程序即可:

import base64

correct ='XlNkVmtUI1MgXWBZXCFeKY+AaXNt'

s = base64.b64decode(correct)

flag = ''

for i in s:

    i = chr((i-16)^32)   // 如果是py2环境i需要改为 ord(i);

    flag += i

print (flag)

总结 :

入门题较为简单,不需要对汇编有多深的了解,会用工具即可;

因为我喜欢追寻过程中的自己
原文地址:https://www.cnblogs.com/IzuruKamuku/p/14359797.html