ГГ. Собсно такой вопросец. Озадачился я зачем то прогой http://lancer.ho.ua/Fugihhuio.exe Она разумеется упакована. Но распаковалась быстренько, и под ней оказался старый добрый вижл васик. Вооот, тут начались траблы. Ибо декомпилятор генерит какой то дикий код. Регистрация сводится к тому что прога генерит aes файл (яшка яйцами поклялся что это алгоритм шифрования), в ответ на этот файл автор божиццо отправить файл ключ. http://letitbit.net/download/9124.926b68a81db5a6c47d1d7f164/unpacked.rar.html Собсно распакованное файло. Внимание, авира на сам распаковщик и на его результат материццо это это вирьё. Вооот. Потом суём файло в декомпилятор, и получаем вот такую штуку. Вот тут трындец. Вроде всё нужно еесть, но ничерта не могу понять в каком месте проверяется ключ, и каким вообще образом . собсно декомпиленый проект http://letitbit.net/download/8456.d8974c02d3d8c8cc493ef4344/decompiled.rar.html Хто нить в базике шарит. Поясните как в этом копаться.
Чем тебе этот не нравитцо? Или не разглядел батон скачать бесплатно? Щас любой обменник минуту ждать заставляет. Этот хоть скорость вроде не режет.
Почему название темы не в тему темы? И не любой обменник заставляет ждать минуту. По теме. Совеутю не декомпилировать, а дизассемблировать, если, конечно, знаний достаточно. Если нет, то курите маны.
Эммм, с каких пор стало проще дизассемблить прогу, которая написанна на языке хранящим кучу данных о структуре? Извините конечно, но совет не в тему. Вы ещё .net посоветуйте дизассемблировать а не декомпилировать.
Помогите плиз мне взломать интернет! У меня на свои мозги время-времени нет! Так что-уо залью я пинчик на letitbit.net, И нафлужу на ачате на 1000 GET! А вообще, ТС, юзай vb-decompiler.org.
VB Decompiler отлично декомпилирует. Ищите где открываются файлы *.key p.s. противно смотреть на название темы =\
Для всех кто пишет не посмотрев хотябы декомпилированный проект (уж он то чистый) Декомпилированно именно vb-decompiler 7.6 И именно где эти файлы открываются, и не могу найти ПыСы. Господа, если вам нечего сказать по делу, хоть не флудите, а то тема уже на 9 сообщений, а кроме флуда нифига нету.
Время затраченное на крики к совести реверсеров можно было потратить более продуктивно. Code: 00414E42 PUSH Fugihhui.00404E60 ; UNICODE ".KEY" .... 00414E9C CALL Fugihhui.0041DB00 внутри 41DB00 0041DC14 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFileO>; MSVBVM60.__vbaFileOpen ... 0041DDE4 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm>; MSVBVM60.__vbaStrCmp ; не обязательно оно, но момент интересный ..... 0041DED8 CALL DWORD PTR DS:[<&MSVBVM60.rtcHexVarF>; MSVBVM60.rtcHexVarFromVar
а кто сказал что я сижу сложа руки. Спасибо за подсказку. Всегда уважал людей которые не флудят когда не знают ответа. Можешь сказать как нашёл. Ибо мне нужен не результат, а способ его достижения. Если есть ман, дай пожалуйста линк. ПыСы. Пробовал в декомпилёре юзать поиск, но он выдавал что строк не найдено, даже если искал строку которая была тут же в нём и открыта.
Классика Даже не зная правильного ответа сначала, мысль у меня была верной. В olly нашли строку по сочетанию .key, нашли "code xref" на строку, вот мы и на месте. Декомпилятор лишь подтвердил мою мысль. Код не был превращен в vb "кашу", что позволило более менее разглядеть логику. Вот и все, ничего мудреного. p.s. Декомпилятором искать строки - дикость, это почти тоже самое что блокнотом открывать exe и dll.
Щас олькой поковырялся. Файл с ключом проверяется с тем же именем что и АES В памяти у меня настойчиво висит строка 0012FD78 |00152F44 UNICODE "WD-WCAPD2050354" что навевает мысль о привязке к винту. Вооот. Прога при неверном key файле тихо загибается. Судя по процедуре чтения файла 0041DC64 . FF15 14114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGet4>>; MSVBVM60.__vbaGet4 Автор использует какую то свою структуру, и читает её с файла. (если я правильно понял смысл http://www.firststeps.ru/vba/vbahelp/r.php?24) Вооот... пока мысли иссякают, но буду ковырять далее. Где то в середине чтения с файла вылазит уникодная TP_INVALID, и собсно программа умирает в муках эксепшнов. Чешу затылок дальше. UPD. До сравнения строк дошёл после заполнения файла 1 до талого. В памяти при этом висит строка моей кучи еденичек и 0, короче видимо строка на пустоту проверяется Потом генерится строка из склеенных кодов символов. Для еденичек это было 313131313131, причём строка это первые 51 символ, а всего в файле данных должно быть гораздо больше, порядка 300 байт. Дойдя до конца строки, падает в эксепшн. Я в растерянности
Если не получается раскусить генерацию кода, то что мешает изменить результат функции, как мне показалось он либо целочисленный либо boolean. Если так, то патчим результат, надеясь что результаты "вычислений" нигде не используются. Опять же, чтоб не надеяться на авось, есть бряки аппаратные на чтение\запись