daily pastebin goal
42%
SHARE
TWEET

D411 scramble

a guest Mar 10th, 2010 416 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2.  
  3. void printseed(unsigned char* data) {
  4.         int i;
  5.         for(i=1;i<16;i++) {
  6.                 printf("%x ", data[i]);
  7.         }
  8.         printf("\n");
  9. }
  10.  
  11. void printstream(unsigned char* data, int restart) {
  12.         int i;
  13.         for(i=restart;i<16;i++) {
  14.                 printf("%d ", data[i]&1);
  15.         }
  16.         printf("\n");
  17. }
  18.  
  19. void mangle(unsigned char* data) {
  20.         unsigned char a,x,temp,i,offset,carry=0;
  21.         a=data[0xf];
  22.         do {
  23.                 x=a;
  24.                 offset=1;
  25.                 carry=1;
  26.                 a+=data[offset]+carry;
  27.                 data[offset]=a&0xf;
  28.                 a=data[offset++];
  29.                 a+=data[offset]+carry;
  30.                 a=(~a)&0xf;
  31.                 temp=a; a=data[offset]; data[offset++]=temp&0xf;
  32.                 a+=data[offset]+carry;
  33.                 if(a<0x10) {
  34.                         temp=a; a=data[offset]; data[offset++]=temp&0xf;
  35.                 }
  36.                 a+=data[offset];
  37.                 data[offset]=a&0xf;
  38.                 a=data[offset++];
  39.                 carry=0;
  40.                 a+=data[offset]+carry;
  41.                 temp=a; a=data[offset]; data[offset++]=temp&0xf;
  42.                 a+=8;
  43.                 if(a<0x10) {
  44.                         a+=data[offset]+carry;
  45.                 }
  46.                 temp=a; a=data[offset]; data[offset++]=temp&0xf;
  47.        
  48.                 while(offset<0x10) {
  49.                         a++;
  50.                         a+=data[offset]+carry;
  51.                         data[offset]=a&0xf;
  52.                         a=data[offset++];
  53.                 }
  54.                 offset &= 0xf;
  55.                 a=x;
  56.                 a+=0xf;
  57.                 if(a>0x0f) {
  58.                         a &= 0xf;
  59.                         carry=1;
  60.                 } else carry=0;
  61.         } while(carry);
  62. }
  63.  
  64. int main(void) {
  65.         unsigned char restart=1;
  66.         unsigned char keyseed_data[16]= {0x0, // dummy
  67.                            0xb,0x1,0x4,0xf,
  68.                            0x4,0xb,0x5,0x7,
  69.                            0xf,0xd,0x6,0x1,
  70.                            0xe,0x9,0x8};
  71.         unsigned char lockseed_data[16]={0x0, // dummy
  72.                            0x0,0x9,0xa,0x1,
  73.                            0x8,0x5,0xf,0x1,
  74.                            0x1,0xe,0x1,0x0,
  75.                            0xd,0xe,0xc};
  76.  
  77.         unsigned char* keyseed=keyseed_data;
  78.         unsigned char* lockseed=lockseed_data;
  79.         printseed(keyseed);
  80.         printseed(lockseed);
  81.         printf("\n");
  82.  
  83.         while(1) {
  84.                 printf("\n");
  85.                 printstream(keyseed, restart);
  86.                 printstream(lockseed, restart);
  87.                 mangle(keyseed);
  88.                 mangle(keyseed);
  89.                 mangle(keyseed);
  90.                 mangle(lockseed);
  91.                 mangle(lockseed);
  92.                 mangle(lockseed);
  93.  
  94.         //      printseed(keyseed);
  95.         //      printseed(lockseed);
  96.                 restart=lockseed_data[7];
  97.                 if(lockseed_data[7]&1) {
  98.                         keyseed=lockseed_data;
  99.                         lockseed=keyseed_data;
  100.                 } else {
  101.                         keyseed=keyseed_data;
  102.                         lockseed=lockseed_data;
  103.                 }
  104.                 if(!restart)restart=1;
  105.         //      printf("send %d-15\n", restart);
  106.         }
  107.         return 0;
  108. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top