Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

как создать переменную через WinHex?

Perevozcik Знаток (433), на голосовании 9 лет назад
есть программа, в ней есть пустая часть кода, мне нужно там создать переменную, допустим X и присвоить ей число 111111111111, пробовал int x =11; программа не захотела принимать переменную, что не так сделал подскажите! =(
Голосование за лучший ответ
... Гений (84839) 9 лет назад
Если мы говорим про .exe / .com файл. . WinHex на сколько я знаю 16ричный редактор. И он не обязан понимать и компилировать int x = 11. Когда код откомпилирован нет уже никаких x и собственно типа int.
Есть команды процессору, адреса, регистры и значения. Есть слово, двойное слово и т. д. Зависит от процессора. Более того есть представление отрицательных чисел в дополнительном коде (что касается знакового типа int в языках "высокого" уровня)

Ну исключение есс-но это помещение в .exe файл отладочной информации при компиляции из исходника (или MSIL в .NET, где можно вытащить имена "переменных" при декомпиляции + отладке, но не всегда) .
При подключении отладочной информации есть сопоставление переменной и адреса. Но и задача изменения x становится тривиальной (зависит от отладчика)

Вы можете присвоить регистру ax,bx,cx и т. д. или eax, ebx и т. д. какое-то значение, вставив _ассемблерный_ код или его соответствие в 16ричном виде. К сожалению, я не помню наизусть команду mov ax / mov eax и её соответствие в 16ричном виде, а искать в справочнике сейчас лень. Но суть, я думаю, ясна.

P.S: Пишите на почту, если что
Похожие вопросы