Сейчас на форуме: asfa, _MBK_ (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Память не может быть "read".
Посл.ответ Сообщение

Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2009 14:50
· Личное сообщение · #1

всем привет.

Скомпилил я переборщик паролей в visual c++2005. При малой длине пароля и при малых алфавитах, все прекрасно работает. Но если ставить большие, то прога, отработав какое-то время, либо виснет, либо выдает ошибку типа:
инструкция по адресу "0х00412759" обратилась к памяти по адресу "(тут разные значения получаются, например 0х0036с00а)". Память не может быть "read".
Где-то я вылезаю за допустимые границы....
Подскажите пожалуйста как найти эту инструкцию(0x00412759) или что изменить для устранения ошибки или как выяснить в чем проблема.

Если кому не жалко на меня времени, посмотрите пожалуйста.

тут исходный код и исполняемый файл
files.mail.ru/APD71A

Отладка в Visual c++ останавливается в 334 строке файла arj2.с
t = text[r] = text[i];




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 15 декабря 2009 15:47
· Личное сообщение · #2

посмотри статью, может найдешь, что интересное для себя
www.wasm.ru/print.php?article=cycle_pwd

-----
Лучше быть одиноким, но свободным © $me





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 декабря 2009 18:16
· Личное сообщение · #3

для начала буфер увеличь до 4 размера, чтобы всё помещалось

-----
EnJoy!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 15 декабря 2009 18:17
· Личное сообщение · #4

Да, если буфера меньше 4 размера, ловить вообще нечего.
З.Ы. Не сдержался



Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2009 19:45
· Личное сообщение · #5

Jupiter пишет:
для начала буфер увеличь до 4 размера, чтобы всё помещалось


я извиняюсь, но нельзя ли поточнее?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 декабря 2009 23:39
· Личное сообщение · #6

pilot34

для начала попробуй собрать с опцией линкера /STACK:1000000,1000000

а чтобы посмотреть код по адресу 0x00412759 запускаешь hiew следующим образом

hiew32 полный_путь_к_файлу_crack.exe /Oc=.00412759

-----
EnJoy!




Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2009 15:20
· Личное сообщение · #7

опция линкера ничего не изменила, вылазиет та же ошибка.


В hiew нашел, что по адресу 0х00412759 находится команда mov al, [esi][eax]
Только как найти это в СИшном коде?



Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 декабря 2009 13:51
· Личное сообщение · #8

с ошибкой разобрался.


 eXeL@B —› Вопросы новичков —› Память не может быть "read".
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати