← Back to Writeups
CUSTOMEasyReversing

Rust

XESXOR9/2/20261 min read
#reversing#custom#easy#linear_arithmetic_reverse#source_code_analysis

Rust

Platform: CUSTOM | Category: Reversing | Type: Challenge | Difficulty: Easy | OS: N/A | **Author: XESXOR Techniques: linear_arithmetic_reverse, source_code_analysis

Summary

Walkthrough of the CUSTOM Reversing Rust. Language: Rust. Source code provided. Flag checker with linear transformation.

Description

Language: Rust. Source code provided. Flag checker with linear transformation.

Analysis

rust
let check:Vec<u32> = vec![215, 233, 200, 218, 374, 167, 164, 158, ...];
for i in checked.as_bytes() {
    if ((*i as u32) * 3 + 5) != check[counter] {
        println!("Nope");
        return;
    }
}

Each input byte is multiplied by 3 and 5 is added, then the result is compared with the check array.

Solution

Inverse formula: byte = (check[i] - 5) / 3 ‍​‌‌​​​​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​​‌​​​​‌‌​​​​​‌‌​​‌‌​​‌‌​​‌​‌​‌‌​​‌​‌‍

python
check = [215, 233, 200, 218, 374, 167, 164, 158, 167, 311, 308, 296, 158, 164, 155, 167, 170, 173, 173, 167, 161, 158, 155, 152, 158, 164, 311, 311, 308, 380]
flag = ''.join(chr((v - 5) // 3) for v in check)
# FLAG{REDACTED}

‍​‌‌​​​​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​​‌​​​​‌‌​​​​​‌‌​​‌‌​​‌‌​​‌​‌​‌‌​​‌​‌‍

Key Takeaways / Lessons

  • Mastering linear_arithmetic_reverse, source_code_analysis was key to this challenge.
  • Always check for common misconfigurations and verify assumptions.

Crafted by XESXOR Research • 2026-03-09 • CUSTOM • Rust • Difficulty: Easy