PhieuLang

bin4

Aug 22nd, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.56 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. void binary_to_hex(int *bin, int bit_len){
  5.     const char *hex_dig = "0123456789abcdef";
  6.     char hex;
  7.     int i;
  8.     int idx;
  9.     char flag_hex[41] = "4c68e0bef260eabe68e466bea0e460bed866d2dc";
  10.     char hex_your_string[40];
  11.     printf("After doing your hex string:\n");
  12.     for(i=0;i<bit_len;i+=4){
  13.  
  14.         idx = 8*bin[i] + 4*bin[i+1] + 2*bin[i+2] + bin[i+3];
  15.         hex = hex_dig[idx];
  16.         hex_your_string[i/4] = hex;
  17.         //printf("%d/%d\n",i,bit_len);
  18.         printf("%c",hex);
  19.     }
  20.     printf("\nFlag after xxx and hex:\n"); puts(flag_hex);
  21.     if(strncmp(hex_your_string,flag_hex,40)==0)
  22.         printf("God Job!!\n\n");
  23.     else
  24.         printf("Fail! Try Again!!!\n\n");
  25. }
  26.  
  27.  
  28.  
  29. void converttobinary(char *chr)
  30. {
  31.     int length = strlen(chr);
  32.     int bits[8*length];
  33.     int i;
  34.     int n=0;
  35.     for(i=0; 8*length; i++){
  36.         if(i!=0 && i%8==0)
  37.         {
  38.             n=0;
  39.             ++chr;
  40.             if((*chr)=='\0') break;
  41.         }
  42.         bits[i] = ((1<<n) & (*chr)) != 0 ? 1:0;
  43.         n++;
  44.  
  45.     }
  46.  
  47.     int end = (8*length)-1;
  48.     int t;
  49.  
  50.     for (i = 0; i < (8*length)/2; i++) {
  51.         t       = bits[i];
  52.         bits[i]   = bits[end];
  53.         bits[end] = t;
  54.         end--;
  55.     }
  56.  
  57.  
  58.     int temp = bits[0];
  59.     for(i=1;i<(8*length)-1;i++){
  60.         bits[i]=bits[i+1];
  61.     }
  62.     bits[8*length-1] = temp;
  63.  
  64.     binary_to_hex(bits,8*length);
  65. }
  66.  
  67. int main(int argc, char** argv){
  68.     char chr[20];
  69.     memset(chr,0,20);
  70.     strncpy(chr,argv[1],20);
  71.     strrev(chr);
  72.     converttobinary(chr);
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment