Сейчас на форуме: bartolomeo (+6 невидимых) |
eXeL@B —› Программирование —› Помогите разобраться с алгоритмом проверки ключа |
Посл.ответ | Сообщение |
|
Создано: 04 февраля 2011 20:40 · Личное сообщение · #1 Есть вот такое флешовое чудо: maani.us/slickboard/ Я его использовал для отображения презентации, но незадача - незарегистрированное оно показывает только 10 слайдов. Декомпилировав swf моему взору открылась функция проверки рег-кода: public static function StrRotate(arg1:String):String { return arg1.substr((arg1.length - 1)) + arg1.substr(0, (arg1.length - 1)); } public static function Reg(arg1:String):void { var loc1:*=undefined; var loc2:*=0; gLiCode = arg1; arg1 = Char.ReplaceSubstring(arg1, " ", ""); arg1 = Char.ReplaceSubstring(arg1, "\r", ""); if (arg1.length < 30) { gLi = false; } else { loc1 = 0; loc2 = 1; while (loc2 < arg1.length) { loc1 = loc1 + arg1.charCodeAt(loc2); ++loc2; } if (arg1.charCodeAt(0) - 70 + loc1 % 10 == 6) { arg1 = arg1.substr(1); aX = "FA-K5BCLJ8S6WY9ZT3RE1G2XH.IOQPD4V0N7MU"; aY = arg1; arg1 = ""; loc2 = 0; while (loc2 < aY.length) { aX = StrRotate(aX); loc1 = aX.indexOf(aY.charAt(loc2)); if (loc1 < 26) { arg1 = arg1 + String.fromCharCode(loc1 + 65); } else if (loc1 < 36) { arg1 = arg1 + String.fromCharCode(loc1 + 48 - 26); } else { arg1 = arg1 + String.fromCharCode(loc1 + 45 - 36); } ++loc2; } arg1 = arg1.substr(2, Number("0x" + arg1.substr(0, 2))).toLowerCase(); if (arg1.substr(arg1.length - 5) != "bulk") { gLi = true; if (!(gDomain == "localhost") && gDomain.indexOf(".local") == -1 && gDomain.indexOf("127.0.0.1") == -1) { if (gDomain.indexOf(arg1) == -1 || arg1.length < 2) { gLi = false; } } } else { gLi = true; } } else { gLi = false; } } return; } Т.к. у меня нету флеша - переписал код на php (скрипт во вложении). Проверил - работает, сверяет правильно, но вот с "переворачиванием" алгоритма (для генерации верного ключа) у меня ничего не получается. Пример рег-кода брал с сайта этой штуковины, он такой "I.V8N0LAP6JO.2RYLFDG6FIYU2CO8B" - передается через flashvars. Понял что первый символ это контрольная сумма всего остального в строке. А все остальное это ни что иное как имя домена - на котором флешка будет работать без ограничений. Мой мозг ни как не хочет понимать как решить положенную задачку. Помогите, пожалуйста. 940c_04.02.2011_CRACKLAB.rU.tgz - reg.php |
|
Создано: 04 февраля 2011 21:36 · Личное сообщение · #2 |
|
Создано: 04 февраля 2011 21:52 · Личное сообщение · #3 Декомпилятор Flash отказался конвертировать этот swf в исходник. Точнее он сдампил всякую ересь типа шэйпов и пр. а вот на дампе ActionScript заткнулся. А так - предложенный вариант конечно проще. Просто я думаю вряд ли создатель этой флешки ломал мозг и придумывал свой уникальный алгоритм шифрования. Вполне возможно кто-то увидит в приведенном примере стандартный способ шифрования имени "Какого-то дядьки", о котором рассказывают в институте. |
eXeL@B —› Программирование —› Помогите разобраться с алгоритмом проверки ключа |