日常拖进IDA一看,发现不能反编译,原因是0x124D位置有个call rax
然后看了一下汇编,发现又臭又长,由于本人还没有学汇编,各种jmp,cmp等等看得我头皮发麻
所以我干脆直接在IDA里面改汇编,把call rax改成call main就能反编译了
一目了然
稍加分析便能发现输入字符必须要在(47,122]里,也就是从0到z
图源:百度百科,侵删
后面的问题就变成怎样把用这些字符写出shellcode了
看了一些大佬们用alpha3重定向一下就能搞出shellcode,详见大佬博客,结果如下
amd64 可见字符 'Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t'
然后发送就可以了,记得要用send而不是sendline,因为回车\x0a不在合法范围内