|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 28, 2004 11:55:13 Вау, спасибо! Попробую!!! Аттач будет эти 2 лога читать вместо ключа? Я тоже пока подебажил прогу, так как в заведение попаду где-то в конце недели. Посмотрел, что она творит с марудой. Понял принцип кодирования даты биоса и марки материнской платы. Принцип такой. Она высчитывает длину строки (у меня 43 символа) и начинает шивровать её начиная с последней буквы. Шифр следующий: Байт - последовательность из 8 байтов (HEX 01 C4 73 37 A3 5D 1B 00), меняется последовательно с каждой буквой, потом но новой и т.д. XOR буква,байт ROR буква,7 NEG буква И потом записывает её обратно. И так со всеми буквами. Получается зашифрованная строка, потом он сравнивает её с аналогичной строкой из Маруды, если я не ошибаюсь. Но дальше пока не разобрался, не буду говорить, в чёи не уверен. Прога перезаписывает Маруду после каждого запуска. Причём если Маруду стереть, то создаёт новую со стандартным содержимым. А если дать стыренную (там значений больше), то работает дольше и те другие значения не стирает. И по-моему к реестру обращается. Я там при создании шифра видел открытие файла c:\windows\user.dat Второе значение из Маруды новое после каждого запуска. По-моему зависит от системного времени. Есть ещё два. До них пока не дошёл. А вот обращения к ключу найти не могу:( не соображаю достаточно... подскажи где искать. Я сегодня выложу на ФТП сайта фирмы дистрибутив, dll-ку и скину линк, кому интересно. exe-шник правда лучше отсюда брать, он тут не зашифрован. И нужна 98-я винда. |
|
|
Дата: Июл 28, 2004 12:07:49 Ещё скину то, до чего дошёл путём дебага по бряку, что ты дал. 1) GetCurrentDirectory() - возвращает C:\Program Files\Server\ 2) lstrcatA() - добавляет к той строке слово "Marouda" 3) GetVersionExA() 4) GetCurrentProcess() 5) ReadProcessMemory() - при завершении после ещё пары команд в EDI появляется адрес строки с версией БИОСА 6) lstrcatA() добавляет к этой строке дату прошивки 7) lstrcatA() добавляет туда марку мат. платы\ 8) lstrlenA() - возвращает длину полученной строки 9) lstrcopyA() 10) GetLocalTime() 11) SystemTimetoFileTime() 12) lstrcopyA() 13) GetWindowDirectoryA() - возвращает C:\Windows\ 14) lstrcatA() - возвращает c:\windows\user.dat 15) CreateFileA() - насколько понял, открывает user.dat 16) GetFileTime() 17) CloseHandle() Потом идёт последовательность команд, которых я не знаю (краснеет) FILD FIDIV FRNDINT FISTP WAIT затем трижды GetPrivateProfileString() затем начинает процедуру шифрования строки, которую я уже описал. Потом внимательно не смотрел, ибо начал путаться. Сегодня продолжу. |
|
|
Дата: Июл 28, 2004 13:12:43 · Поправил: tsatidis ! |
|
|
Дата: Июл 28, 2004 13:57:10 > FILD FIDIV FRNDINT FISTP WAIT Это команды FPU > затем трижды GetPrivateProfileString() DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // points to section name
LPCTSTR lpKeyName, // points to key name
LPCTSTR lpDefault, // points to default string
LPTSTR lpReturnedString, // points to destination buffer
DWORD nSize, // size of destination buffer
LPCTSTR lpFileName // points to initialization filename
);
Читает строку из ini файла, где lpFileName указатель на строку с именем файла, а lpReturnedString указатель на буфер куда будет считана строка. |
|
|
Дата: Июл 28, 2004 14:35:47 А вот обращения к ключу найти не могу Следи за структурой (SKEY) в памяти . У меня туда и в eax пишет типа FFFE,FFFF если нет ключа или ошибка . Возьми в аттаче новую экзешку , там добавил ещё функций чтения всякой лабуды из ключа (может пригодиться) . Она сделает 5 файлов (логов) , заберёшь их оттуда , а потом уже будет видно что нам нужно от skeydrv.dll . Прототип этой длл тоже в аттаче , там добавил эмуляцию WRITING_MODE , т.е. пока будем писать не в ключ , а в файл . И их него же считывать (READING_MODE) . Как разберёмся , то можно данные вшить в саму длл . На счёт user.dat , я сомневаюсь , чтоб прога его как-то использовала . А пока таки да , можно покопать маруду . 1422020925__eutron.zip |
|
|
Дата: Июл 28, 2004 14:45:31 · Поправил: bogrus tsatidis А без ключа саму прогу лучше попробуй дебажить с этой skeydrv.dll (пустышка) , она хоть ничего не делает , но главное ошибок не возвращает . 1) GetCurrentDirectory() - возвращает C:\Program Files\Server\ 5) ReadProcessMemory() Какая бацила у тебя вызывает эти ф-ции ? Я их не нашёл ни в проге , ни в dll . _1322787278__null.zip |
|
|
Дата: Июл 28, 2004 21:15:00 C:\Program Files\Server - каталог, где находится файл и куда я устанавливал прогу. Скину тебе скриншоты из Olly. Почти сразу после бряка по адресу, что ты мне дал. Дистрибутив в RAR'е можно скачать по адресу http://visionstudio.hosting.amiteg.ru/download/serverjpv64.rar - 2.5MB Если каких-нить dll при установке не будет хватать - ругайтесь, пришлю:) У меня сейчас просто прога дебажится, как закончу - скину, откуда она эти функции зовёт. |
|
|
Дата: Июл 28, 2004 22:12:12 Вот на этом скриншоте показаны функции. Здесь я как раз в самом начале skeydrv.dll на следующей команде после бряка, что ты мне дал. 209165751__debug.png |
|
|
Дата: Июл 28, 2004 23:11:14 Да у тебя не тот skeydrv.dll вообще ! Ты вылаживаешь не тот файл , что у тебя дебажиться . В skeydrv.dll , который ты сюда аттачил и который в дистрибутиве , НЕТ КОДА который у тебя на скриншоте , и entry point ф-ции msclink другой . Найди у себя skeydrv.dll тот , который ты дебажишь , сравни и приаттачь . Вот , что у меня на след. команде после бряка . _1359487671__skeydrv.png |
|
|
Дата: Июл 29, 2004 11:39:34 · Поправил: tsatidis хм... стоп! Нашёл! Я тебе из Windows\system присылал, а есть ещё один в каталоге с прогой... ёптить, запутался я с ними... Значит так... этот skeydrv.dll был в заведении в каталоге с программой, я его так себе и перекачал и забыл. Вот он. В нём есть и маруда и секции и всё остальное. Его я видать и дебажу... А я то думал, почему он у тебя маруду не видит... Вот файл. _1149483811__SKEYDRV.rar |
|
|
Дата: Июл 30, 2004 18:24:17 Это совсем другое дело , евтроном тут и не пахнет , в заведение можешь не идти . Но , во-первых дистрибутив корявый , на NT он не ставиться полностью , во-вторых не понятно почему в нём лежит skeydrv.dll от EUTRON , а прога вообще работает с другой skeydrv.dll от хитропопого автора проги , в третьих эта dll толи умышленно , толи от корявости рук её писателя не возвращает TRUE при её инициализации , из-за чего прога не будет работать (на NT так точно , а у тебя на 9х видимо работает) , а по коду видно что она рассчитана и на NT , т.к. проверяет версию винды и соответственно использует разные способы чтения биоса (если NT , то через ntdll.ZwOpenSection) . В общем чтобы длл подгрузилась , надо пропатчить её entry point (push 1,pop eax) . Ну да ладно , бери уже в аттаче патчер на прогу и длл её обманывающую . Прога запускаеться (проверял на w2k) , тока я понять не могу что там делать , не знаю я языка греческих крякозябликов :) См. скриншот . Если что не так , то сорцы приложены , дебаж и анализируй дальше . _717409992__bandites.jpg |
|
|
Дата: Июл 30, 2004 18:25:46 |
|
|
Дата: Июл 31, 2004 14:07:09 супер! Запустилась!!!! Мне б такие мозги как у тебя:) хм... вот теперь самое интересное начинается. ВИдать у него эта версия глючная, поэтому он её и не шифровал даже. Но попробую подебажить на обработку клавиш. В заведении знаю точно F6 отправляла на выбранный клиент 500 кредитов. А тут даже в выпадающем меню Screen Saver to Send игр нет. Должны были быть Petaloudes_50, Petaloudes_80 и ещё дофига всего. НО нужны только эти Петалудес (по-гречески бабочки) :) В прогу как-то можно войти в режиме администратора, где смотришь кассу, выставляешь, сколько бандиты будут оставлять, сколько брать:) Сейчас показывает режим юзера. Было бы неплохо применить патч именно к тому екзешнику, который он юзает в заведении. но он зашифрован. Выдаёт какой-то yoda's cryptor 1.x / modified. Я распаковал его одним декриптером, в хексе видно, что распаковалась, да и показывает вместо криптера теперь Ms Visual basic 5.0 or 6.0 но прога запускаться не захотела. ВИдать что-то попортилось:( Видимо импорт испорчен... http://reng.ru/board/viewtopic.php?t=1418&sid=bf2e51d25903f0bc46283d17cd1b1eef - инфа по похожей теме. Ладно, прилагаю декриптер, который я использовал (просто бросил иконку проги на его иконку), экзешник последней версии и мой расшифрованный вариант, который не запустился. Пока пойду переустановлю клиента (у меня 2 компа в мастерской, на один сервер поставил, на другой клиент) и попробую сделать так, чтобы прога его увидела. Дальше буду ломать голову над тем, как зайти в неё под другими правами. Там и в хексе если её смотреть, есть 3 вида юзеров. АДмин там Master вроде как. Иначе видать надо юзать именно тот экзешник, который в заведении. Заодно смотаюсь к нему посмотрю, как там настройкт работают, если он конечно сам туда зайти может:) Аттач - распаковщик для Yod-ы, который подошёл, но угробил прогу. 1835770838__DEYC.rar |
|
|
Дата: Июл 31, 2004 14:10:21 Второй аттач из двух частей - оригинальный экзешник, который там работает. Зашифрованный. 1534251096__crypted.part1.rar |
|
|
Дата: Июл 31, 2004 14:11:02 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.062 |