Executable
執行二進制程式碼
我有一個二進制程式碼,我想執行它。
01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100
如何創建文件“application/x-executable”並在 Debian 上執行?
那隻是“Hello World”的ascii編碼的二進製表示,不是執行檔,沒有辦法執行它。
那實際上不是可執行程式碼。它只是 8 位 ASCII 中的二進製字元串內容“Hello World”。
既然你要求一個程序,你可以在 C 中做這樣的事情:
#include <stdio.h> #include <string.h> #include <stdlib.h> char *bin2str(char *binStr) { int len; int i = 0; // input cursor int j = 0; // binary cursor used to allow spaces in the input static char str[256]; // keep it simple and limit the length len = strlen(binStr); // avoid recounting every time if (len > 256 * 8 - 1) { // impose the limit fprintf(stderr, "Error! Input string too long\n"); exit(2); } for (i = 0; i < len; i ++) { switch(binStr[i]) { case ' ': continue; break; case '0': case '1': break; // valid :) default: fprintf(stderr, "Encountered an invalid binary number ('%c') at offset %d!\nAborting\n", binStr[i], i); exit(3); } if (j % 8 == 0) { str[j / 8] = 0; // initialize char } if (binStr[i] == '1') { str[j / 8] |= 1 << (7 - (j % 8)); } j ++; } str[i / 8] = '\0'; // null terminate string return str; } int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage:\t%s binary string\n", argv[0]); exit(1); } printf("Conversion output: \n%s\n", bin2str(argv[1])); return 0; }