Tag: 拆卸

%al在C代码中注册

testb $1, %al je .L3 leal 1(%eax,%eax,2), %eax jmp .L4 我得到了上面的汇编代码,并要求将其翻译成c代码。 我知道几乎所有这些都在做什么,我只是不知道如何为%al寄存器做C代码。 如果它有帮助,这是汇编代码的其余部分 prob2: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax cmpl $1, %eax je .L1 .L6: testb $1, %al je .L3 leal 1(%eax,%eax,2), %eax jmp .L4 .L3: shrl %eax .L4: cmpl $1, %eax jne .L6 .L1: popl %ebp ret

*地址(在printf中找到)在汇编中意味着什么?

反汇编printf没有提供太多信息: (gdb) disas printf Dump of assembler code for function printf: 0x00401b38 : jmp *0x405130 0x00401b3e : nop 0x00401b3f : nop End of assembler dump. (gdb) disas 0x405130 Dump of assembler code for function _imp__printf: 0x00405130 : je 0x405184 0x00405132 : add %al,(%eax) 它是如何在引擎盖下实施的? 为什么拆卸无济于事? 在0x405130之前*含义是什么?

逆向工程c程序

如果分发了这个二进制文件,则每个c程序都转换为机器代码。 由于计算机的指令集众所周知,是否可以取回C原始程序?