本帖最后由 成熟的美羊羊 于 2023-3-13 18:48 编辑
寞叶 发表于 2023-3-13 18:11
第一层username输入52过了,后面两个pass爆破不出来不知道为什么,感觉是相似的
🙂看你发了几个编译时保护的CrackMe,特地给你写的例子,对抗jcc跳转和eflag爆破。
For 寞✌ obf demo
因为这编译时保护是用宏写的,所以很多东西是没法隐藏的。
140001dba int64_t r14 = data_140008188
140001e77 int64_t rcx_44 = 0x3d306b7d4d686fe5 ^ r14 ^ rbx_5
sub_1400046f0(rcx_44 ^ 0x10101010101010c4, rdx_23, -0x340d631b7bdddcdb, r9_3)
去追data_140008188,就可以看到我对je跳转地址进行的异或加密了。
140001199 488d0580170000 lea rax, [rel sub_140002920]
1400011a0 48b9101010101010…mov rcx, 0x1010101010101010
1400011aa 4831c8 xor rax, rcx {0x1010101150103930}
1400011ad 488905d46f0000 mov qword [rel data_140008188], rax {0x1010101150103930}
1400011b4 488d05851a0000 lea rax, [rel sub_140002c40]
1400011bb 4831c8 xor rax, rcx {0x1010101150103c50}
1400011be 488905cb6f0000 mov qword [rel data_140008190], rax {0x1010101150103c50}
1400011c5 488d05041e0000 lea rax, [rel sub_140002fd0]
1400011cc 4831c8 xor rax, rcx {0x1010101150103fc0}
1400011cf 488905c26f0000 mov qword [rel data_140008198], rax {0x1010101150103fc0}
给三个全局变量异或回去,便是三个je对应的跳转地址。实际上,静态分析工具已经帮我们把函数显示出来了。
工具在爱盘的链接: https://down.52pojie.cn/Tools/Disassemblers/Binary_Ninja_Personal_For_Windows_v3.1.3469.zip
140001199 488d0580170000 lea rax, [rel sub_140002920]
1400011b4 488d05851a0000 lea rax, [rel sub_140002c40]
1400011c5 488d05041e0000 lea rax, [rel sub_140002fd0]
|