C++较难的Cm
小菜自己写了一款混淆器,现在完成雏形了,特地写了个CM给大家尝尝鲜要求是追出真码,最好附上思路,谢谢
爆破就没什么必要了,因为直接能看到关键跳转,就不是玩这个题的初心了{:1_937:} #include <stdio.h>
void decode_and_print_flag(long long r13, long long r11, long long rcx) {
long long rbp, r14, r12;
// First block of operations
rbp = r13 & 0x0F;
rbp += r11 & 0x0F;
rbp >>= 4;
rbp &= 0x1;
// Second block of operations
r14 = rcx >> 0x3F;
r12 = r11 >> 0x3F;
r14 ^= r12;
r12 = r13 >> 0x3F;
r14 ^= r12;
r14 &= 0x1;
r14 <<= 0xB;
rbp |= r14;
// Third block of operations
r14 = rcx >> 0x3F;
r14 &= 0x1;
r14 <<= 0x7;
rbp |= r14;
// Fourth block of operations
r14 = (r13 < rcx) ? 1 : 0;
r14 &= 0x1;
rbp |= r14;
// Print the flag if conditions are met
if (rbp == 1) {
printf("Wow U Got The Flag
");
}
}
没往上跟 qq465881818 发表于 2024-5-9 20:38
#include
void decode_and_print_flag(long long r13, long long r11, long long rcx) {
这个是一个最基本的东西 甚至还没到算法{:1_937:} 提示一下,这个CM是经过二次混淆的,所以一条指令会比较长
页:
[1]