网站代备案,seo是什么职业合法吗,快推达seo,战略咨询公司运行程序,发现是要我们自己输入
那么肯定是拿到enc慢慢还原
32位,无壳
进来就红一下报错 这里可以看见长度为24
动调一下看看 这里进行了大量的异或 这里是对地址开始的硬编码进行异或,从而达到smc的效果
所以你也可以发现在进行这一步操作之前
encry函数全是报错 你点开…
运行程序,发现是要我们自己输入
那么肯定是拿到enc慢慢还原
32位,无壳
进来就红一下报错 这里可以看见长度为24
动调一下看看 这里进行了大量的异或 这里是对地址开始的硬编码进行异或,从而达到smc的效果
所以你也可以发现在进行这一步操作之前
encry函数全是报错 你点开数据段也发现这有很大一段数据
其实是因为没有异或前,是乱的
使用IDA以为是数据,保存在这
u和p一下就正常了 这是没有异或前的编译 a1就是我们输入的
然后buffer 和v1我们都知道 到这里就解出来了一部分
剩下那一部分就要靠脑洞了
你可以发现
buff是24位,说明buff还要用 我们已知最后一个是}
利用这个得到66
既然我们找不到其他数据
就用66带进去,异或
re就是要慢慢试 失败~
又想!
flag{fak3_alw35_sp_me!!}
这是前面得到的fake flag
能用吗?
直接粘贴上后面五位
还是G
好吧,现在整理下思路
已知!buff肯定要用!因为他的位数刚好24
我们围绕buff来 作者的语言也会给我们信息 为什么是come here
然后一个put函数?
f5什么也看不见
汇编呢?
汇编不是连着的吗 下面原本是一堆数据
你p一下
就出现五个数据!
试一下 塞在后面还是错了 __________
经过一系列猜测(看wp)
原来我先入为主认为buff一定ok了
op1[0x0000000E, 0x0000000D, 0x00000009, 0x00000006, 0x00000013, 0x00000005, 0x00000058, 0x00000056,0x0000003E, 0x00000006, 0x0000000C, 0x0000003C, 0x0000001F, 0x00000057, 0x00000014, 0x0000006B,0x00000057, 0x00000059, 0x0000000D]
buufhahahaha_do_you_find_me?
for i in range(len(op1)):print(chr(op1[i]^ord(buuf[i])),end)
op2[37,116,112,38,58]# 71 ^ 58 chr(})
for i in op2:print(chr(71^i),end) 最后,至于其他wp那个改堆栈,其实对我没什么感觉,我就没写