Advertisement
Guest User

GCHQ Stage 2 Solution - VM code translated to C

a guest
Dec 5th, 2011
466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.58 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3.  
  4. char buf[4096];
  5.  
  6. int main() {
  7. int x = 170, i=0, r2=0;;
  8.  
  9. // decode next decrypt code
  10.   FILE *in = fopen("dump.bin", "r"); // file to open (vm code dump)
  11.   fread(buf, 4096, 1, in);
  12.   for(i=0x100; i<0x100+0x80; i++)
  13.   {
  14.     char c = buf[i];
  15.     printf("%c", c^x);
  16.     x++;
  17.   }
  18.  
  19. // decrypt next sequence (GET)
  20.   r2=0;
  21.   x = 50;
  22.   char c;
  23.   do {
  24.     c = buf[0x1c0 + r2];
  25.     c ^= x;
  26.     buf[0x1c0+r2] = c;
  27.     r2++;
  28.     x+=3;
  29.     //if(r2==0) jump x
  30.   } while (c!=0 && r2 < sizeof(buf));
  31.  
  32.   for(i = 0; i<4096; i++)
  33.     printf("%c", buf[i]);
  34. }
  35.  
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement