Сейчас на форуме: asfa, bartolomeo (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Помогите разобрать алго на VB |
Посл.ответ | Сообщение |
|
Создано: 29 февраля 2012 11:00 · Поправил: Loh_Ushastik · Личное сообщение · #1 Помогите разобраться с алго, уверен что все на столько просто, что последний пост будет "ну ты затупил". Готовый ключ вынимаю и регистра , с этим проблем нет, а вот алго (т.к. код на VB а я его совсем не знаю) разбираться затруднительно. Вот функция: Code:
![]() |
|
Создано: 29 февраля 2012 11:14 · Поправил: Loh_Ushastik · Личное сообщение · #2 Продолжение функи : Code:
0040A2B0 - отсюда начинаются вопросы! т.е. алго прост - прога в цикле берет с начала строки ID пары из "EB231015F898B12E", первая "EB", дальше формирует строку "&HEB" т.е. как я понимаю аналог на делфи chr($EB) а вот дальше что за манипуляция такая с адреса 0040A2b0 что в итоге получает "A" в стеке , которая является первым символом ключа активации? Для этого ID ключ в итоге получается UNICODE "AASVVY3T". Подскажите что и как, уверен что все окажется просто, за что будет стыдно ![]() ![]() |
|
Создано: 29 февраля 2012 11:33 · Поправил: LeeBay · Личное сообщение · #3 Самое простое - это смотреть по функциям MSVBVM60... msvbvm60.__vbaVarTstGe - Сравнение двух переменных: больше или равно. Результат в EAX... msvbvm60.__vbaVarSub - вычитание двух переменных... Результат в EAX... msvbvm60.__vbaVarIndexLoad - не знаю точно, но помоему это загрузка переменной из массива по индексу... msvbvm60.__vbaVarForNext - цикл... Можно почитать ![]() |
|
Создано: 29 февраля 2012 11:45 · Личное сообщение · #4 |
|
Создано: 29 февраля 2012 11:49 · Личное сообщение · #5 |
|
Создано: 29 февраля 2012 11:55 · Личное сообщение · #6 |
|
Создано: 29 февраля 2012 14:08 · Личное сообщение · #7 Лучше бы, конечно, программу выложить... Под отладчиком все непонятки сразу бы снялись. Если очередной байт больше 100, то из него вычитается 100 до тех пор, пока не станет меньше (или меньше-равно). А потом из массива по адресу 40E030 берется элемент с получившимся индексом в очередной символ ключа. Вроде как-то так. Т. е. по адресу 40E030, вероятно, должен быть символьный массив. ![]() |
|
Создано: 29 февраля 2012 14:17 · Личное сообщение · #8 |
|
Создано: 29 февраля 2012 20:43 · Личное сообщение · #9 |
|
Создано: 01 марта 2012 05:44 · Личное сообщение · #10 Hexxx пишет: Для разбора вот этой хрени идеально подходит hex rays. Прописать аргументы функциям и все. в этой хрени очень много лишнего от RT, ida и rays в ней просто тунут: Code:
а вот что выдает специализированная тулза: Code:
почувствуйте разницу с идеалом ![]() |
|
Создано: 01 марта 2012 06:28 · Личное сообщение · #11 |
|
Создано: 01 марта 2012 10:50 · Личное сообщение · #12 |
|
Создано: 01 марта 2012 10:58 · Поправил: Loh_Ushastik · Личное сообщение · #13 |
|
Создано: 02 марта 2012 11:04 · Поправил: Hexxx · Личное сообщение · #14 sen пишет: в этой хрени очень много лишнего от RT, ida и rays в ней просто тунут Вы просто не умеете готовить. sen пишет: а вот что выдает специализированная тулза: А это для любителей VB, ни чем не лучше hex rays. А так, чего ждать? Давайте, продавайте уже свою тулзу. Рекламу уже все увидели. ----- Реверсивная инженерия - написание кода идентичного натуральному ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Помогите разобрать алго на VB |