Screenshot 0

In this challenge, a program written in assembly is provided to decrypt an encoded string using an XOR operation with a fixed value of 0x12. The program begins by setting the address of the encoded string and the location where the decoded text will be stored. Then, it applies the XOR operation to each byte of the string using a loop, which results in the decryption of the string. After decryption, the program prints the decoded string to the screen using the sys_write system call, allowing the user to view the decoded message. Finally, the program terminates using the sys_exit system call to ensure proper execution termination.

assembly.asm

asm
section .data
    msg db 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x6E, 0x65, 0x74, 0x73, 0x69, 0x73, 0x69, 0x74, 0x63, 0x6F
        db 0x6D, 0x7B, 0x49, 0x5F, 0x4C, 0x4F, 0x56, 0x45, 0x5F, 0x41, 0x53, 0x53, 0x4D, 0x45, 0x42, 0x4C
        db 0x59, 0x7D, 0

section .bss
    decoded resb 33

section .text
    global _start

_start:
    mov esi, encoded
    mov edi, decoded
    mov ecx, encoded_len

decode_loop:
    lodsb
    xor al, 0x12
    stosb
    loop decode_loop

    mov eax, 4
    mov ebx, 1
    mov ecx, decoded
    mov edx, encoded_len
    int 0x80

    mov eax, 1
    xor ebx, ebx
    int 0x80

What we need to do is take the encrypted data and decrypt it.

Screenshot 1

Flag : securinetsisitcom{I_LOVE_ASSMEBLY}

IEEE ISIMa CTF — writeup
Securinets ISITCOM Friendly-CTF Cicada-3301 Writeup