![]() |
eXeL@B —› Вопросы новичков —› Подскажите, где ошибка... |
Посл.ответ | Сообщение |
|
Создано: 24 мая 2009 00:25 · Личное сообщение · #1 Доброго времени суток всем. Прошу совета и подсказки, где я допустил ошибку при написании кейгена, писал на асме. Вобщем ситуация такая, что при нажатии на кнопку "Generate" выскакивает ошибка и сгенерированный код не показывается, хотя при анализе в оле код генерируется правильно и в конце генерации правильный код я вижу в регистрах EAX и EBP, но вывести его не получаетчя, где-есть ошибка или что-то не правильно делаю...Содержимое Asm и Include файлов прилагаю, если нужно, выложу и ехе файл. Возможно в коде есть много лишнего, но код генерируется правильно. Асм начал изучать не давно, но уже написал несколько кейгенов на этом языке и все было нормально, а с этим немного зашел в тупик... Asm файл: Code:
Include файл: Code:
----- We do what we want because we can. ![]() |
|
Создано: 24 мая 2009 03:10 · Личное сообщение · #2 verdizela Часто используешь стэк без надобности! Code:
это ваще бессмысленная конструкция ниже исправленный код процедуры Code:
это строку тоже можешь удалить, думаю поймешь почему она не нужна ![]() Code:
----- xchg dword [eax], eax ![]() |
|
Создано: 24 мая 2009 10:18 · Личное сообщение · #3 v0id2k Большое спасибо за ответ и за совет. Ошибки я уже исправил, все работает... Тему, в принципе, я готов закрыть, но пользуясь случаем, хочу задать еще несколько вопросов. Какой процедурой можно очищать стек от мусора? Я читал об этом и хотел переписать пример этотй процедуры, но не зделал этого и теперь стараюсь вспомнить, где я это видел... И второй вопрос. После окончания процедуры генерациии в EAX у меня готовый серийник, а как получить длинну строки серийника, тоесть количество знаков...? ----- We do what we want because we can. ![]() |
|
Создано: 24 мая 2009 13:26 · Поправил: Coderess · Личное сообщение · #4 Какой процедурой можно очищать стек от мусора? В конче процедур вызывается leave После окончания процедуры генерациии в EAX у меня готовый серийник, а как получить длинну строки серийника, тоесть количество знаков...? я так понимаю указатель хранится в Eax, тогда вызов функции lstrlen или самодельной xstrlen Code:
На выходе Ecx - содержит количество символов ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 24 мая 2009 13:39 · Личное сообщение · #5 |
![]() |
eXeL@B —› Вопросы новичков —› Подскажите, где ошибка... |
Эта тема закрыта. Ответы больше не принимаются. |