查壳
64位,进IDA:
你会发现,啥也没有,别急,再找找:空格切换视图:
往下走:
发现这里存了一堆东西:A转化成字符串:
继续找:
发现转化不了,看看是不是程序爆了:
发现:是这条代码爆红了,没发现堆栈不平衡,试试nop掉:
发现依旧没用,我也蒙了,看了大佬们的文章,发现是一堆机器码,需要nop掉:(上个脚本,不然手动nop掉估计得明天了都)
startaddr = 0x001144
endaddr = 0x3100
for i in range(startaddr,endaddr):
if get_wide_byte(i) == 0xEB:
if get_wide_byte(i+1) == 0xFF:
patch_byte(i,0x90)
print("[+] Addr {} is patched".format(hex(i)))
怎么用呢:重新进IDA(这里不要保存)