![]() |
eXeL@B —› Вопросы новичков —› помогите написать кейген |
Посл.ответ | Сообщение |
|
Создано: 14 августа 2009 21:30 · Поправил: Bomzheg · Личное сообщение · #1 Программка простая - распаковал, нашёл место проверки ключа, кстати в незахешированном виде. но вот процедура генерации ключа - тёмный лес... содержание архива Russian.lng и All_Language_Translate.xls - русификация Horse-Sport.exe -оригинальный файл распаковывал - дамп OllyDbg (OEP - методом PUSHAD - POPAD) восстановление импорта - PE-TOOLS результаты работы: 004A6661 - в регистре EAX правильный рег. код 004A615E - здесь, насколько я понимаю, вычисляется правильный код конечно можно и просто в OllyDbg смотреть правильный код, но хочется сделать кейген вот фрагмент: в EDX - 0FEDCBA98h Code:
из-за того что EBX всё время меняется - всё время меняется адрес откуда записывается EDX... хоть пол-программы копируй в кейген... ![]() ![]() |
|
Создано: 14 августа 2009 21:58 · Поправил: BoRoV · Личное сообщение · #2 Bomzheg пишет: XOR EDX,DWORD PTR DS:[EBX+EDI] ;вот здесь самая загвоздка это скорей всего масив, в EDI указательна на начало масива, а в EВX индекс этого масива, а сам масив имеет такой вид: Code:
он может содержать как константы, так и заполнятся во время выполнения программы З.Ы. програму пока не смотрел Добавлено: посмотрел, да, там тупо масив костант, тебе нужно только его рипнуть, и кейген готов ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 14 августа 2009 22:27 · Личное сообщение · #3 |
|
Создано: 14 августа 2009 22:50 · Личное сообщение · #4 Bomzheg пишет: а где можно про массивы почитать? даже если для крэкинга не пригодится, хочу почитать в разных книгах по протраммированию, тема масивов расматривается наверное во всех книгах по программированию, но не в обиду сказано, поищи книги для чайников, там как бы объясняется на каком-то жизненом примере, что есть масив, потому как не все сразу понимают что такое масив, если объяснять научно, я сам не с первого и не со второго раза понял что такое масив в свое время ![]() ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 14 августа 2009 23:05 · Личное сообщение · #5 что такое массив я знаю+) в VBA мы почти всё делали через вектора и матрицы. то есть само определение массива мне не нужно. Меня интересует синтаксис и особенности массивов в Асме. книги Ассемблер для чайников я не нашёл, (это первое что я делаю при изучении нового языка) самое близкое к этому - туториалы Iczeliona (нашёл недавно на русском). До конца пока не дочитал... да и до середины не дочитал, но если там есть, то этого мне наверняка хватит.. хотя я сомневаюсь, он в основном рассказывает про API, а не про Ассемблер ![]() |
|
Создано: 15 августа 2009 01:07 · Личное сообщение · #6 |
|
Создано: 15 августа 2009 01:13 · Личное сообщение · #7 |
|
Создано: 15 августа 2009 09:51 · Поправил: Bomzheg · Личное сообщение · #8 Jupiter спасибо, но думаю этого мало.меня ещё интересует обращение к элементам по номеру элемента um0v с английским разумеется плохо ![]() ![]() |
|
Создано: 15 августа 2009 10:44 · Поправил: BoRoV · Личное сообщение · #9 Bomzheg пишет: но думаю этого мало.меня ещё интересует обращение к элементам по номеру элемента к примеру берем тот пример что привел Jupiter, слегка изменив: Code:
и твой кейген: Code:
как вариант, можно написать кейген так Code:
это простой алгоритм CRC32, поищи в инете реализацию этого алгоритма на асме и возьми его, только одно но, стартовое значение тебе прийдется задать то что ты приводил в шапке, которое в EDX лежит, просто по умолчанию стартовое значение равно 0FFFFFFFFh ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 17 августа 2009 17:44 · Поправил: Bomzheg · Личное сообщение · #10 |
|
Создано: 17 августа 2009 20:44 · Личное сообщение · #11 |
|
Создано: 22 августа 2009 19:54 · Личное сообщение · #12 срипал 38 dword'ов(максимальная длина ника получится - 20) вставил в код и разумеется получил ответ от масма: keygen.asm(25) : error A2042: statement too complex keygen.asm(25) : error A2039: line too long вопросы: сколько ограничение на длину строки? как бы сделать чтобы в программе все 38 двордов шли подряд и иметь на них указатель? конечно, понимаю что можно сделать несколько строк поменьше и несколько циклов.. но это как-то глупо ИМХО. ![]() |
|
Создано: 22 августа 2009 21:14 · Личное сообщение · #13 |
|
Создано: 24 августа 2009 13:03 · Личное сообщение · #14 |
![]() |
eXeL@B —› Вопросы новичков —› помогите написать кейген |
Эта тема закрыта. Ответы больше не принимаются. |