z236293824 发表于 2024-5-9 14:13

C++较难的Cm

小菜自己写了一款混淆器,现在完成雏形了,特地写了个CM给大家尝尝鲜
要求是追出真码,最好附上思路,谢谢
爆破就没什么必要了,因为直接能看到关键跳转,就不是玩这个题的初心了{:1_937:}

qq465881818 发表于 2024-5-9 20:38

#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
");
    }
}
没往上跟

z236293824 发表于 2024-5-11 00:03

qq465881818 发表于 2024-5-9 20:38
#include

void decode_and_print_flag(long long r13, long long r11, long long rcx) {


这个是一个最基本的东西 甚至还没到算法{:1_937:}

xdwknet 发表于 2024-5-11 08:47

z236293824 发表于 2024-5-15 12:48

提示一下,这个CM是经过二次混淆的,所以一条指令会比较长
页: [1]
查看完整版本: C++较难的Cm