我在二元炸弹上坚持这个逻辑。我理解了一个类似的问题,但是我的逻辑似乎与我在这个问题上进行逆向工程完全不同。
我评论了我认为逻辑正在做什么,但到目前为止没有成功。那么,eax
= 211,这是否意味着rax
具有该值?因为然后将rax
与194进行比较。这个逻辑只是处理寄存器rsi
,rdx
,rcx
。我相信rdi
可能会分开检查输入。
谢谢
<+24>: not %rsi //NOT rsi
<+27>: and %rsi,%rdx //rdx &= rsi
<+30>: xor $0x1b9,%rdx //rdx ^= 441
<+37>: mov $0xd3,%eax //eax = 211
<+42>: sub %rdx,%rax //rax -= rdx
<+45>: mov %rax,%rdx //rdx = rax
<+48>: cmp $0xc2,%rax //rax == 194
<+54>: sete %al
<+57>: movzbl %al,%eax
<+60>: cmp %rcx,%rdx //Does rdx == rcx?