|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.06.2011, 22:43 | #1 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Ошибка сравнения
Привет всем! Помогите разобраться... Код - выводит окно регистрации с полем для ввода пароля, но почему-то всегда переходит на метку 'BAD'. Если меняю условие, то переходит на метку 'ОК' (значит сравнивает). Может "правильный" пароль (passw db '12345',0) загоняю не так? Пробовал в ASCII-коде, цифрами, латиницей/кирилицей - всё одно и тоже. Прошу Ваших советов!
Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 18.06.2011 в 08:21. |
18.06.2011, 11:27 | #2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
строки сравнивает CMPS
|
18.06.2011, 12:26 | #3 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
...с cmps вообще не компилируется, ошибка указывает на эту строку.
Нашедшего выход - затаптывают первым..
|
18.06.2011, 21:54 | #4 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
какой ассембелр? какая ошибка?
а написать свою процедуру сравнения строк? может литературку почитать стоит? |
19.06.2011, 09:53 | #5 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
В общем, создал такое окно. Считываю данные с Edita функцией GetDlgItemText в буфер.
Код:
Прогнал программу под отладчиком OllyDbg, ..вроде всё нормуль. После ввода пароля отладчик показывает такое: Код:
Нашедшего выход - затаптывают первым..
|
19.06.2011, 11:45 | #6 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
выглядит, как-то странно. вроде сравниваются два абсолютно разных адреса, и если там стоит JNZ, то условие должно всегда выполняятся.
Но как правильно было отмечено, имеет смысл использовать CMPS, вместе LOOP, я так думаю. Цитата:
|
|
19.06.2011, 13:22 | #7 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
loop - это значит мотать цикл, т.е. сравнивать каждый символ отдельно чтоли?
Нашедшего выход - затаптывают первым..
|
19.06.2011, 14:05 | #8 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Да, цикл. Возможно стоит присмотреться к LOOPE/LOOPNE.
Даже если предположить, что в EBX лежит часть строки (что, конечно, неправда), не кажется ли вам, что EBX слегка короче чем строка? |
19.06.2011, 23:07 | #9 |
Форумчанин
Регистрация: 14.03.2011
Сообщений: 104
|
Команда
Код:
Для правильной работы нужно написать что-то вроде Код:
Последний раз редактировалось Silver_S; 19.06.2011 в 23:14. |
19.06.2011, 23:15 | #10 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
скорее уж что-то вроде
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция сравнения | Ksy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 16.05.2011 13:07 |
Сравнения изображений | ВасяСВВ | Общие вопросы C/C++ | 0 | 05.04.2011 17:17 |
Функция сравнения | sanya94 | Общие вопросы C/C++ | 3 | 02.12.2010 22:24 |
Алгоритм сравнения | f3nix | Общие вопросы Delphi | 1 | 16.02.2008 11:12 |