逆向_root_me_4

ELF — Random Crackme

magic之前的内容都删除,因为之前的垃圾内容,使得不能运行ELF文件
ELF files start with 7f 45 4c 46
0v8xN8.jpg


r2 -ww ./ch3.bin
-w open file in write mode
ww foobar write wide string ‘f\x00o\x00o\x00b\x00a\x00r\x00’
wx 9090 write two intel nops

[0x080482f0]> wx eb @ 0x0804841A

Short Jump(短跳转)机器码 EB


0vGPjs.jpg

用time,rand产生随机密码
gdb 直接设置eip 跳过代码

set $eip=xxxx

再运行c


binwalk crackme_wtf
1
2
3
4
r2
aaa
afl //list function
s sym.main

ELF x64 - Crackme automating

str=”break\n”
var4=0
var8=0xf7
(MOVSXD r64, r/m32 Move doubleword to quadword with sign-extension.
这是64位代码中的指令,它将32位寄存器或地址转换为32位值,并将其符号扩展为64位寄存器。 符号扩展采用源的最高位(符号位)的值,并使用它来填充目标的所有高位。)

var4+str
位置加var4
(movzx是将源操作数的内容拷贝到目的操作数,并将该值用0扩展至16位或者32位。但是它只适用于无符号整数。 他大致下面的三种格式。)

str[0]
MOVSX 指令(进行符号扩展并传送)将源操作数内容复制到目的操作数,并把目的操作数符号扩展到 16 位或 32 位。这条指令只用于有符号整数,

xor (str[0] ,0xa3)=0xf7

str[1]

cmp eax, 0xf7

注:上篇有自动化代码链接