Я сейчас работаю над этим проектом, и мне нужна помощь, чтобы понять, что происходит с этой фазой в этой бинарной бомбе, которую нужно обезвредить.
Я понимаю, что требуемый вход имеетвведите% d% d, и я также вижу, что это рекурсивный вызов в методе func_4
, однако я не совсем уверен, как числа меняются / перемещаются.
000000000040105e <func4>:
40105e: 85 ff test %edi,%edi
401060: 7e 2b jle 40108d <func4+0x2f>
401062: 89 f0 mov %esi,%eax
401064: 83 ff 01 cmp $0x1,%edi
401067: 74 2e je 401097 <func4+0x39>
401069: 41 54 push %r12
40106b: 55 push %rbp
40106c: 53 push %rbx
40106d: 89 f5 mov %esi,%ebp
40106f: 89 fb mov %edi,%ebx
401071: 8d 7f ff lea -0x1(%rdi),%edi
401074: e8 e5 ff ff ff callq 40105e <func4>
401079: 44 8d 64 05 00 lea 0x0(%rbp,%rax,1),%r12d
40107e: 8d 7b fe lea -0x2(%rbx),%edi
401081: 89 ee mov %ebp,%esi
401083: e8 d6 ff ff ff callq 40105e <func4>
401088: 44 01 e0 add %r12d,%eax
40108b: eb 06 jmp 401093 <func4+0x35>
40108d: b8 00 00 00 00 mov $0x0,%eax
401092: c3 retq
401093: 5b pop %rbx
401094: 5d pop %rbp
401095: 41 5c pop %r12
401097: f3 c3 repz retq
0000000000401099 <phase_4>:
401099: 48 83 ec 18 sub $0x18,%rsp
40109d: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax
4010a4: 00 00
4010a6: 48 89 44 24 08 mov %rax,0x8(%rsp)
4010ab: 31 c0 xor %eax,%eax
4010ad: 48 89 e1 mov %rsp,%rcx
4010b0: 48 8d 54 24 04 lea 0x4(%rsp),%rdx
4010b5: be 1e 2a 40 00 mov $0x402a1e,%esi
4010ba: e8 81 fb ff ff callq 400c40 <__isoc99_sscanf@plt>
4010bf: 83 f8 02 cmp $0x2,%eax
4010c2: 75 0b jne 4010cf <phase_4+0x36>
4010c4: 8b 04 24 mov (%rsp),%eax
4010c7: 83 e8 02 sub $0x2,%eax
4010ca: 83 f8 02 cmp $0x2,%eax
4010cd: 76 05 jbe 4010d4 <hase_4+0x3b>
4010cf: e8 73 05 00 00 callq 401647 <explode_bomb>
4010d4: 8b 34 24 mov (%rsp),%esi
4010d7: bf 06 00 00 00 mov $0x6,%edi
4010dc: e8 7d ff ff ff callq 40105e <func4>
4010e1: 3b 44 24 04 cmp 0x4(%rsp),%eax
4010e5: 74 05 je 4010ec <phase_4+0x53>
4010e7: e8 5b 05 00 00 callq 401647 <explode_bomb>
4010ec: 48 8b 44 24 08 mov 0x8(%rsp),%rax
4010f1: 64 48 33 04 25 28 00 xor %fs:0x28,%rax
4010f8: 00 00
4010fa: 74 05 je 401101 <phase_4+0x68>
4010fc: e8 8f fa ff ff callq 400b90 <__stack_chk_fail@plt>
401101: 48 83 c4 18 add $0x18,%rsp
401105: c3 retq
Я пробовал базовые комбинации чисел, такие как 2 и 3 и 4 и 5, но не повезло, и я действительно не уверен, какие цифры я должен получить. Буду очень признателен за любую помощь или руководство.