]> gitweb.ps.run Git - onefile/blobdiff - print_obf.c
add print_obf.c
[onefile] / print_obf.c
diff --git a/print_obf.c b/print_obf.c
new file mode 100644 (file)
index 0000000..1d55246
--- /dev/null
@@ -0,0 +1,74 @@
+#include <string.h>
+
+const char *ls = "1111100111111001110010101101101011111000100011111110100110011110" // A-D
+                 "1111111010001111111110001110100011111000100111111001100111111001" // E-H
+                 "1111010001001111111100011001111110111100101010011000100010001111" // I-L
+                 "1111101110011001110110111001100111111001100111111111100111111000" // M-P
+                 "1111100110111111111110011111101011111000111101111111010001000100" // Q-T
+                 "1001100110011111100110011001011010011001101111111001011001101001" // U-X
+                 "10011001111101001111001001001111";                                // Y-Z
+
+const char *hs =
+    "f9f935b5f11f7997f71ff171f19f99f9f22ff89fd359111ffd99bd99f99ff9f1f9dff9f5f1fef222999f999699df966999f2f42f";
+
+const wchar_t *uc = L"ùù5µñ\1fy\97÷\1fñqñ\9f\99ùò/ø\9fÓY\11\1fý\99½\99ù\9fùñùßùõñþò\"\99\9f\99\96\99ß\96i\99òô/";
+
+void a(char c)
+{
+    for (int o = 0; o < 4; o++)
+    {
+        int x = hs[(c - 'a') * 4 + o];
+        x -= x >= 'a' ? ('a' - 10) : '0';
+        for (int i = 0; i < 4; i++)
+            printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : "");
+    }
+}
+void b(char c)
+{
+    for (int o = 0; o < 2; o++)
+    {
+        int x = uc[(c - 'a') * 2 + o];
+        for (int i = 0; i < 8; i++)
+            printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : "");
+    }
+}
+
+void get_binary()
+{
+    for (int i = 0; i < strlen(ls) / 4; i++)
+    {
+        int num = 0;
+        for (int j = 0; j < 4; j++)
+        {
+            char c = ls[i * 4 + (3 - j)];
+            if (c == '1')
+                num += (1 << (3 - j));
+        }
+        printf("%.1x", num);
+    }
+    printf("\n");
+}
+void get_ascii()
+{
+    for (int i = 0; i < strlen(ls) / 8; i++)
+    {
+        int num = 0;
+        for (int j = 0; j < 8; j++)
+        {
+            char c = ls[i * 8 + (7 - j)];
+            if (c == '1')
+                num += (1 << (7 - j));
+        }
+        printf("%C", num);
+    }
+    printf("\n");
+}
+
+int main()
+{
+    a('d');
+    b('d');
+    get_binary();
+    get_ascii();
+    return 0;
+}