Код (Text): push counts mov eax,numberr pop [eax] в numberr передаётся указатель на переменную, которой надо передать значение,хранящееся в counts пробовал по всякому, но всёравно выпад p.s. если прицеплен отладчик , выпад происходит в совершенно другом месте, несколькими строками раньше, но без отладчика выпадает дальше
arrrg Покажи как определены counts и numberr, и как инициализирована numberr. > если прицеплен отладчик , выпад происходит в совершенно другом месте, несколькими строками раньше Покажи.
во время работы функции происходит вывод.с прицепленным отладчиком вывод не происходит, а листинг предоставленный мною выше, находится в самом конце функции.
arrrg Нужно адрес загрузить, а не значение. Масм загрузит значение переменной. Где переменные, может в стеке, интуиция гадалки подсказывает что в секции данных модуля, тогда: Код (Text): mov dword ptr ds:[numberr],offset counts Если страница не доступна для записи возникнет сепшин.
invoke Stringscount,offset Stringg,offset counts(второй параметр необходимо изменить в конце функции) так в numberr и хранится адрес
arrrg В масме инструкция Код (Text): mov eax,numberr загрузит в регистр значение переменной, а не её адрес. Как должно быть в #6.
arrrg Откуда вы только такие берётесь.. этот синтаксис компилятора и хз как он будет скомпилирован, следует интеловский код вылаживать в подобных случаях. counts - это переменная в стеке или в сегменте данных ? Инструкция Код (Text): mov eax,numberr загрузит в регистр значение, как и предыдущая. Также и Код (Text): pop [eax] - не понятно какой сегмент. Подробное описание переменных(где они находятся) и их значения в студию.
Окей, после сбора всего вышесказанного возникают очередные вопросы. Какой адрес хранится в переменной "numberr" на момент выпада? Придётся повторить ранее сказанное: память по этому адресу доступна только для чтения или, может быть, не выделена? Если это так, то "ошибка", совершенно очевидно, находится в другом месте – там, где один кладёт в переменную "numberr" неверный адрес.
arrrg Ну дык надо посмотреть что за адрес и поставить бряк на изменение этой памяти. Подозреваю что кто-то портить память занятую под этот указатель.
Код (Text): invoke Stringscount,offset Data,offset counts вызов как указатель может быть тут неправильным?
повторяю в переменной "numberr" находится offset counts,переданный в момент вызова невыделена и доступной только для чтения переменная counts быть не может, потому что операции чтения и записи в главном модуле никаких выпадов не вызывает
Код (Text): push counts mov eax,numberr pop [eax] Что это вобще за перл? Обфускация для самого себя чтоли