Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1.  
  2. public class main {
  3. /*
  4. install_pcm
  5. seed="45 82 0A"
  6. real_key="3B 15 E1"
  7.  
  8. install_pcm_again
  9. seed="36 F0 F7"
  10. real_key="C9 4E C9"
  11.  
  12. sjb
  13. */
  14. public static void main(String[] args) {
  15.  
  16. String seed = "7A 6B 61";
  17. String real_key = "96 11 73";
  18.  
  19. System.out.println("Observed seed: "+seed);
  20. int s1 = 0x3f;
  21. int s2 = 0x9e;
  22. int s3 = 0x78;
  23. int s4 = 0xc5;
  24. int s5 = 0x96;
  25.  
  26. int seed_int = (Integer.parseInt(seed.substring(0, 2),16)<<16) + (Integer.parseInt(seed.substring(3, 5),16)<<8)+(Integer.parseInt(seed.substring(6,8),16));
  27.  
  28. int or_ed_seed = ((seed_int & 0xFF0000) >> 16) | (seed_int & 0xFF00) | (s1 << 24) | (seed_int & 0xff) << 16;
  29.  
  30. int mucked_value = 0xc541a9;
  31.  
  32. int test;
  33. int a_bit,v9,v8,v10;
  34. for(int i = 0 ; i<32; i++) {
  35. a_bit = ((or_ed_seed >> i) & 1 ^ mucked_value & 1) << 23;
  36. v9 = v10 = v8 = a_bit | (mucked_value >> 1);
  37. mucked_value = v10 & 0xEF6FD7 | ((((v9 & 0x100000) >> 20) ^ ((v8 & 0x800000) >> 23)) << 20) | (((((mucked_value >> 1) & 0x8000) >> 15) ^ ((v8 & 0x800000) >> 23)) << 15) | (((((mucked_value >> 1) & 0x1000) >> 12) ^ ((v8 & 0x800000) >> 23)) << 12) | 32 * ((((mucked_value >> 1) & 0x20) >> 5) ^ ((v8 & 0x800000) >> 23)) | 8 * ((((mucked_value >> 1) & 8) >> 3) ^ ((v8 & 0x800000) >> 23));
  38. }
  39.  
  40. int v11,v12,v13,v14;
  41. for(int j = 0; j<32; j++) {
  42. v11 = ((((s5 << 24) | (s4 << 16) | s2 | (s3 << 8)) >> j) & 1 ^ mucked_value & 1) << 23;
  43. v12 = v11 | (mucked_value >> 1);
  44. v13 = v11 | (mucked_value >> 1);
  45. v14 = v11 | (mucked_value >> 1);
  46. mucked_value = v14 & 0xEF6FD7 | ((((v13 & 0x100000) >> 20) ^ ((v12 & 0x800000) >> 23)) << 20) | (((((mucked_value >> 1) & 0x8000) >> 15) ^ ((v12 & 0x800000) >> 23)) << 15) | (((((mucked_value >> 1) & 0x1000) >> 12) ^ ((v12 & 0x800000) >> 23)) << 12) | 32 * ((((mucked_value >> 1) & 0x20) >> 5) ^ ((v12 & 0x800000) >> 23)) | 8 * ((((mucked_value >> 1) & 8) >> 3) ^ ((v12 & 0x800000) >> 23));
  47. }
  48.  
  49. int key = ((mucked_value & 0xF0000) >> 16) | 16 * (mucked_value & 0xF) | ((((mucked_value & 0xF00000) >> 20) | ((mucked_value & 0xF000) >> 8)) << 8) | ((mucked_value & 0xFF0) >> 4 << 16);
  50. System.out.printf("Computed key: %x \n", key);
  51. System.out.println("observed key:"+real_key);
  52.  
  53. }
  54.  
  55.  
  56.  
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement