.net, RSA, и серийный номер.

Discussion in 'Реверсинг' started by lis84, 21 Mar 2010.

  1. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Здравствуйте уважаемые россияне.
    Я снова в эфире, и хотел бы у вас спросить насчёт небольшой такой штукенции.

    Попалась мне программка, которую хотелось бы использовать, да жадная она, аж 30 баксов просит. Взялся я её ковырять, и наковырял такое.

    собсно проверка ключа идёт тут:


    При этом известны все параметры. А именно:
    A_3 это xml структура, которую я могу повторить
    buffer2==A_1=введённый серийный ключ
    A_2 это строка == "<RSAKeyValue><Modulus>rCYsaw7Hof5LnwESHsGclpSfinn+lGkQ3gzxsG6zZTpsqV0mjmcLj12ny+zCfqu78LnwVvPR3TEigBXZHjwnZ9hji+4TSm/2IW+Ic8wTJcaAw2D6AnlQhcILszNd1p1Fxa1Mu1FyOgzWCqYtlWtkRaH0A3nMRDMrnUWahsDFZEU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";


    Вооот, подскажите, можно как то сгенерить true серийный ключ? А то я уже всю голову сломал, и яшку замучал, не могу адекватного описания найти к этим функциям.
    Понял что VerifyData проверяет цифровую подпись, где A_3 собсно данные, а buffer2 (серийный ключ) это их подпись.

    Но не смог понять, могу ли я сгенерить true подпись и как, вроде все данные в руках есть!
     
  2. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    удали функцию проверки пасса и приравняй ее к единице. Все пасс равен одному =)
    Или выложи всю прогу (в раздел реверсинг)
     
  3. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Ну господа, пропатчить это не солидно, хотелось бы кейген.

    Уж поверьте если я могу найти где проверяется ключ, то уж и вырезать могу. Интересует именно обход этого приёма, если он попадётся где нибудь с жёстким контролем целостности экзешника, то будет обидно что в своё время не разобрался.

    ПыСы прога тут.
    http://webbug.s3.amazonaws.com/webbugpro.exe
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Подозреваю что проверка идет с помощью открытого ключа, с помощью которого не сгенерить правильный серийник.
    Пропатчи VerifyData в mscorlib )
     
    _________________________
    1 person likes this.
  5. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    900
    Likes Received:
    274
    Reputations:
    59
    Навскидку виден модуль и экспонента rsa, так что можно озадачиться факторизацией, ну если делать нечего в ближайшее время.
    Говоря иначе, то же самое время можно потратить на написание аналогичной программы :)
     
    #5 neprovad, 21 Mar 2010
    Last edited: 22 Mar 2010
  6. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    бррр, погодите, я вот тут немного не понимаю. Все исходные данные открыты, неужели нельзя сгенерить нужный ключ?

    я немного не понимаю, на чём основанно это ограничение, можете кто нить пояснить.

    ПыСы, да не предлагайте мне что то патчить, я в первые 10 минут патч сделал, тут концептуальный вопрос, неужели вот так легко можно сделать убер серийник (не ломающийся)
     
  7. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Видно что:
    1. Беруться исходные данные (имя юзера, емаил, и айдишники оборудования
    2. Берётся введённый ключ.
    3. это всё суётся в функцию verifyData, и она выдаёт результат, истина или ложь.

    Воот, теперь кто нибудь пояснит почему невозможно узнать какой должен быть true ключ?

    ПыСы, принцип работы RSA понимаю, и что такое ассиметричные алгоритмы. Принцип работы ЭЦП не понимал никогда (что именно помешает мне подделать подпись), сколько не читал. Интернет описания ЭЦП то ли какой то факт пропускают, отсутствие которого мешает понять, то ли люди которые пишут, слишком умные.
     
    #7 lis84, 22 Mar 2010
    Last edited: 22 Mar 2010
  8. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    900
    Likes Received:
    274
    Reputations:
    59
    Это понятно что интерес чисто академический, но на практике сложно реализовать, судя по тому что я понял ключ 1024 битный (если не прав - поправьте) На кряклабе успешно факторизовали совместными усилиями более "мелкий" ключ, а такой мне думается не поддастся натиску. Не стоит заморачиваться, можно или публичную часть ключа заменить своей или просто запатчить проверку. Ну а про это варианты уже был разговор..
     
  9. zeppe1in

    zeppe1in Elder - Старейшина

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    lis84
    Подпись это хэш от данных зашифрованный закрытым ключом. ты вводиш данные и подпись, подпись расшифровывается(открытым ключом) и сверяется с хешем от данных, вот тебе и проверка подписи. Без закрытого ключа подпись не сделаешь, а ключ как уже сказал neprovad 1024 битный, так что кейген на сегодняшний день не вариант)
     
  10. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Ааа, то есть закрытый ключ в принципе нигде в программе не фигурирует :((, а до кучи такой способ позволяет сделать невзламываемые серийники :((

    Запишу себе в копилку программиста.

    ПыСы. Помнил что в RSA открытым ключом данные шифруются (расшифровываются только закрытым), не знал что можно расшифровать.
     
  11. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2lis84
    всетаки рекомендую почитать ещё про ассиметричное шифрование и чтото более фундаментальное, того же Шрайбера к примеру. Иначе плаваешь в этих вопросах.
     
  12. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Линк есть?
     
  13. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    тьфу, Шнайер конечно )
    первая ссыль в гугле
    http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm

    из наших братья Молдовяны неплохи, хотя по секрету лекторы из них никакие =)