逆向+南邮Hello Re+攻防世界re1

把exe执行文件在ida中打开,在反汇编代码中

在ida浏览A界面选定要查看的函数,按f5看到了伪代码, 于是点击字符串按R转化为其实际值发现一串特别像flag的字符串,只不过是逆序,打出来就是flag。

flag{Welcome_To_RE_World!}


 

写一些Python脚本,把十六进制转化字符串,,
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)):
    s += chr(a[i]^i)
    print (s)

运行得到结果。flag{read_asm_is_the_basic}

在计算机领域,寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和控制寄存器
不同的处理器,寄存器的个数、结构是不同的。

16位处理器有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

32位处理器有16个寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP、EIP、ES、CS、SS、DS、FS、GS、EFLAGS。

64位处理器有15个寄存器:RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP、R8、R9、R10、R11、R12、R13、R14、R15

    使用时只有寄存器的名字不同,机制上差别不大
    需要注意的是32位是由栈来传参的,64位前六个参数由寄存器RDI、RSI、RDX、RCX、R8、R9依次传参,超过第六个的参数由栈来传参

寄存器的作用
可以用来读写数据到电脑的周边设备
可将寄存器内的数据执行算术及逻辑运算
存于寄存器内的地址可用来指向内存的某个位置,即寻址

攻防世界,,,Re1

打开之后是结构图,按空格键到反汇编代码,

如下,再按tab键,到伪代码, 查看,

伪代码:

首先三行printf肯定不会输出flag,双击查看详细内容,发现,

有敏感信息,按R键转化为字符串,看到了flag的逆序,逆序输入,提交flag成功,

猜你喜欢

转载自blog.csdn.net/qq_44832048/article/details/96897851