135 lines
2.1 KiB
C
135 lines
2.1 KiB
C
#include <stdio.h>
|
|
|
|
// This is the rewrite of 'embedded.bin' from assembly from scratch
|
|
// while ensuring the integrity of program flows and so on
|
|
|
|
int main() {
|
|
int i;
|
|
char fakeflag[0x18] = "Fake Flag: THCTT24{fake}"; // 23 bytes char
|
|
|
|
for (i = 0; i <= 0x17; i++) { // starts at 0; 23 chars at 0x17
|
|
putchar(fakeflag[i]);
|
|
}
|
|
putchar(0xa); // \n
|
|
}
|
|
|
|
int s(int arg1) {
|
|
putchar(arg1);
|
|
return putchar(0x65); // e
|
|
}
|
|
|
|
int q(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x32); // 2
|
|
return s(0x37); // 7
|
|
}
|
|
|
|
int r(int arg1) {
|
|
putchar(arg1);
|
|
q(0x30); // 0
|
|
return putchar(0x66); // f
|
|
}
|
|
|
|
int t(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x61); // a
|
|
return r(0x34); // 4
|
|
}
|
|
|
|
int o(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x33); // 3
|
|
return t(0x33); // 3
|
|
}
|
|
|
|
int l(int arg1) {
|
|
o(0x35); // 5
|
|
putchar(arg1);
|
|
return putchar(0x36); // 6
|
|
}
|
|
|
|
int i(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x39); // 9
|
|
return l(0x64); // d
|
|
}
|
|
|
|
int m(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x31); // 1
|
|
return i(0x30); // 0
|
|
}
|
|
|
|
int d(int arg1) {
|
|
putchar(arg1);
|
|
m(0x63); // c
|
|
return putchar(0x33); // 3
|
|
}
|
|
|
|
int j(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x30); // 0
|
|
return d(0x62); // b
|
|
}
|
|
|
|
int c(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x61); // a
|
|
return j(0x65); // e
|
|
}
|
|
|
|
int f(int arg1) {
|
|
c(0x37); // 7
|
|
putchar(arg1);
|
|
return putchar(0x31); // 1
|
|
}
|
|
|
|
int g(int arg1) {
|
|
putchar(arg1);
|
|
f(0x34); // 4
|
|
return putchar(0x64); // d
|
|
}
|
|
|
|
int a(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x30); // 0
|
|
return g(0x66); // f
|
|
}
|
|
|
|
int e(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x61); // a
|
|
return a(0x38);
|
|
}
|
|
|
|
int h(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x34); // 4
|
|
e(0x65); // e
|
|
return putchar(0x7d); // }
|
|
}
|
|
|
|
int b(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x34); // 4
|
|
putchar(0x7b); // {
|
|
return h(0x30); // 0
|
|
}
|
|
|
|
int p(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x54); // T
|
|
return b(0x32); // 2
|
|
}
|
|
|
|
int k(int arg1) {
|
|
putchar(arg1);
|
|
putchar(0x43); // C
|
|
return p(0x54); // T
|
|
}
|
|
|
|
int n(int arg1) {
|
|
putchar(arg1);
|
|
return k(0x48); // H
|
|
}
|