Сейчас на форуме: bedop66938, -Sanchez-, barsik (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Не могу найти место получения данных из входного ключа. неделю уже |
Посл.ответ | Сообщение |
|
Создано: 05 октября 2008 15:35 · Поправил: FleXik · Личное сообщение · #1 неДоброе время суток! http://link_deleted_by_forum_engine/files/8492250 http://link_deleted_by_forum_engine/files/8492250 размер 3Мб. вот уже неделю не могу сломать корпоративную прогу. Прога не запакована. писана на СИшке. Прога привязывается к CPUID + <&KERNEL32.GlobalMemo>; \GlobalMemoryStatus. входной и выходной коды имеют вид <74 символа>; после ввода кода в окошко регистраци он его не проверяет на правильность а просто проверяет длину и пишет в файл попутно забивая файл всякой хренью для понта такой как системная директория имя компа итп вначале вообще пишет в файл инфу, которая возвращает getsysteminfo. проверка идет только при запуске. почему прога использует данные из кода? - я отрубил окно регистрации принудительно и сделал активным главное... при вызове жизненно важных функций прога вылетает с ошибкой. код при каждом запуске видимо дополняется какими то рандомными данными. Code:
после этого производятся манипуляции с введенным мною кодом который пишется в файл и проверяется при каждом запуске. по адресу 12fd90 вычисляется 25h знаков код из введенного мной по алгоритму Пусть первый 'B' if данный символ =31h или 48h или 5Ah то вернуть 0 else if 50h или 32h то вернуть 1..... else if 58h,4a вернуть 0F результат в BL ( для В результат =3) сразу же берется второй символ те же манипуляции - SHL BL,4 +AL - кароче сделали из 2х - 1 ... ниже сама функция и выборка Code:
|
|
Создано: 05 октября 2008 15:39 · Личное сообщение · #2 Code:
этот код, на сколько я понимаю, создает дополнительный поток.... на который у меня не получилось перейти так как прога ставит наверх (FS[0]) свой обработчик ошибок и вызывает исключение при вызове и часто вылетала просто Code:
И вот где то здесь должны браться данные .... где не могу найти!!! помогите люди добре...! далее идет сравнение после которого считается HardwareId и пишется на место моего неправильного ключа ((( - это место я определил Code:
помогите пожалуйста бьюсь уже неделю.. спать не могу.. =) пароли 1286 юзер 1 пасс 1 на базу пароли не знаю (( к сожалению файл больше чем 500 кб поетому придется кидать на чужой хост ( там без базы прога ваще не запускается а базу порезать не могу) |
|
Создано: 05 октября 2008 15:48 · Личное сообщение · #3 |
|
Создано: 05 октября 2008 15:51 · Личное сообщение · #4 |
|
Создано: 05 октября 2008 15:52 · Поправил: FleXik · Личное сообщение · #5 на всякий кидаю валидную пару Hardware ID : <UU2A9WA6KK6C9JFX91SXLRC8TUZC7L4Z73VNRRAFB5NMURMS1EVHBUZMWEV4YYN47UFCJ 72H1B> -этот при каждом запуске новый! =)) Key: <BU2D5YG2T3GFWEHS5JVNLP4SR9Z2LTGMY3VSLYZX5BFCTY66YWXGEBF8P922TY6F3J223 LH67Y> самое смешное что была попытка на компе котором он стоял переименовать .key в .ke_ а потом дать ему захавать Ключ на новый сгенерированный номер на этом компе ... неповерите - непошел =)) хотя вернув на место .key все опять заработало.... мне здесь подойдет любой вариант отвязки ... сначала я хотел кормить проге HardwareId с чужого компа - ну что б функция всегда возвращала одно и то же , но к сожалению (как мне показалось) этот HDid после его генерации нигде больше не используется... был вариант найти место проверки основного и сгенерированного и переправить так что бы оба входных параметра для функции указывали на один адрес ( ну то б проверял сам с собой) ... видимо это тоже не подходит ((( так как помимо обычной сверки используются данные зашитые?\Зашифрованные? в ключе (иначе не вылетала б)... защита класса неявных ( посоветуйте что да как или я может чего не вижу |
|
Создано: 05 октября 2008 20:29 · Поправил: tempread · Личное сообщение · #6 FleXik Есть интересное преобразование по адресу 4260b2. Там статический HWID(предположительно) преобразовывается в то,что показывается на экране. По идее,если посмотреть какой статический HWID у машины,с которой взята валидная пара(либо вычислить его из того,что показывается на экране), и подставить в программу на другом компе, то достинем цели.В общем,покопай в эту сторону, возможно там еще какие-нибудь преобразования есть. |
|
Создано: 06 октября 2008 01:00 · Личное сообщение · #7 tempread Спасибо что посмотрели, но к сожалению я статика там не обнаружил ибо при перезапуске по адресу 3d39f0 каждый раз новые данные ( я правильно понял про какой стактик идет речь? первый запуск 003D39F0 E5 B0 A4 54 07 B7 B8 B5 C2 37 C9 FF 39 F8 82 16 е°¤T·ёµВ7Йя9ш‚ 003D3A00 EB D2 1F 65 B5 16 BE 0E C4 E6 B4 E0 A1 7D 41 8F лТeµѕДжґаЎ}AЏ 003D3A10 06 22 22 31 AC F0 AD BA 0D F0 AD BA 0D F0 AD BA ""1¬рє.рє.рє ;;; второй запуск 003D39F0 AD F8 A4 9C BF 27 70 7D 32 EF 11 5F E1 80 D2 DE ш¤њї'p}2п_бЂТЮ 003D3A00 73 82 37 9D 15 4E 66 7E EC 5E 64 C8 99 BD 89 97 s‚7ќNf~м^dИ™Ѕ‰— 003D3A10 C6 6A 3A 61 E4 F0 AD BA 0D F0 AD BA 0D F0 AD BA Жj:aдрє.рє.рє 003D3A20 AB AB AB AB AB AB AB AB «««««««« Code:
|
|
Создано: 06 октября 2008 11:37 · Личное сообщение · #8 |
|
Создано: 06 октября 2008 13:14 · Поправил: Konstantin · Личное сообщение · #9 FleXik Все оказалось довольно банально. Обрати внимание на следующий код: Code:
Сравниваются два участка с данными размером под 25h байт. адрес 1-го участка кладется сюда: [ESI+998C] - данные для него формируются из кода системы (как формируются можно узнать если потрейсить код выше) адрес 2-го участка кладется сюда: [ESI+9990] - данные для него формируются из регистрационного ключа Соответственно чтобы прога была зарегина нужно чтобы данные этих участков совпадали. Вот пропатченный файл. http://rapidshare.com/files/151389289/ZRPRT_final.rar.html http://rapidshare.com/files/151389289/ZRPRT_final.rar.html P.S. После запуска патченной проги появляется окошко входа в систему, где просится имя пользователя и пароль, надеюсь это патчить не нужно |
|
Создано: 06 октября 2008 15:33 · Поправил: FleXik · Личное сообщение · #10 Konstantin tempread Огромное Вам спасибо! видимо мне еще стоит подучить асм =) Надеюсь что в долгу не останусь=) к сожалению с рапидшары файл слить не могу так как у провадера мы все через 1 хост сидим(( по фришнику пишет что мой айпишник уже качает =) могу канешно проксей зайти ток искать ее долго 2Konstantin если не секрет, как понял что именно здесь идет проверка? я так понимаю что у меня просто скила не хватило=) или не заметил такую блин простую проверку еще раз Благодарю! |
|
Создано: 06 октября 2008 15:46 · Поправил: tempread · Личное сообщение · #11 |
|
Создано: 06 октября 2008 15:49 · Личное сообщение · #12 |
|
Создано: 06 октября 2008 18:45 · Личное сообщение · #13 |
|
Создано: 06 октября 2008 20:07 · Личное сообщение · #14 FleXik FleXik пишет: 2Konstantin если не секрет, как понял что именно здесь идет проверка? Не секрет . По наводке tempread-а, посмотрел код по адресу 4260b2. Все данные для генерации кода системы берутсья из определенной области размером 25h по адресу 3e3a30. Поставил на адрес 3e3a34 hw-бряк на доступ. После перезапуска трейсил shift+f9 пока в этом адресе не появились нужные данные, потом раза 4-е ctrl+f9 и окажемся в таком месте: Code:
Этот код привлек мое внимание наличием нескольких PUSH 25 . Далее хорошо потрейсив код по адресу call-a 00425FE7 выяснилось что он преобразут регистрационный ключ в блок данных размером 25h. Причем его алго тождественно алго кода по адресу 4260b2(см. выше). Т.е. если преобразавать регистрационный ключ по алго кода 00425FE7, а потом полученный данные использовать для кода по адресу 4260b2, то на выходе получиш тот же регистрационный ключ. А так как код системы и регистрационный ключ абсолютно разные, это наводит на предположение что 2 блока данных, после определенных преобразований должны быть одинаковы. Мозги не кипят от моих обяснений? Дальше идет уже известный код: Code:
Здесь пишуться данные для сравнения(я попробовал сделать их одинаковыми - это сработало ), само сравнение возможно идет в каком-то треде.(это предположение, дальше не смотрел) |
|
Создано: 06 октября 2008 21:23 · Поправил: FleXik · Личное сообщение · #15 2Konstantin Konstantin пишет: Мозги не кипят от моих обяснений? Мозги кипели когда я это лопатил и не получалось определить где идет сравнение, так как обычно все сводилось к банальному cmp al,bl:jnz netRegistracii =) а здесь все понятно написано! еще раз огромное спасибо! 2Tim Благодарю. просто я считаю нужным показать чего я достиг в этом вопросе а не просто клянчить не приложив мозгов, и если не получается то спросить Совета - именно совета, а не полного решения (хотя мне таки и выдали результат сразу =) ). вспоминается любимая история моего папаши - " сидит рыбак на берегу ловит рыбу , а рядом сидит голодный и просит у него рыбу, и пока рыбак сидит - голодный кушает, а когда рыбак ушел - голодный помер с голоду(масло масленное), потому что просил рыбу, а не научить его, как ее ловить. Так вот будь же рыбаком, или хотябы стремись им стать что бы не умереть от голоду ничего не умея! " на сей ноте хочу закончить данную тему, считая ее исчерпанной, дабы не разводить флуд =) всем спасибо |
eXeL@B —› Крэки, обсуждения —› Не могу найти место получения данных из входного ключа. неделю уже |
Эта тема закрыта. Ответы больше не принимаются. |