![]() |
eXeL@B —› Вопросы новичков —› Изменение типа переменной |
Посл.ответ | Сообщение |
|
Создано: 02 марта 2007 05:06 · Поправил: Diabolus · Личное сообщение · #1 |
|
Создано: 02 марта 2007 07:04 · Поправил: AlexZ · Личное сообщение · #2 Думаю что вряд ли. Хотя бы потому что компилер сделал где надо movzx eax, word ptr[--------] или mov ax, [--------]. Короче, переменные разных типов могут по разному обрабатываться, даже если это всего лишь shortint (word) вместо integer (dword), а это на стадии компиляции делается. ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 02 марта 2007 08:46 · Личное сообщение · #3 |
|
Создано: 02 марта 2007 09:23 · Личное сообщение · #4 0) Поиск всех команд с участием этого адреса 1) mov [mem], reg - просто заменяешь начальный байт на 90h 2) mov [mem], imm16 - здесь надо извратиться и сделать jmpl на наш участок кода, кот. делает нужную операцию и дальше jmp обратно Вручную может быть нудно, так что пиши скрипт - несложный должен получиться. ![]() |
|
Создано: 02 марта 2007 09:59 · Личное сообщение · #5 |
|
Создано: 04 марта 2007 01:04 · Личное сообщение · #6 Когда-то делал подобное, нужно было переменную типа word поменять на dword. Пришлось править прогу где-то в 30-ти местах, так как были всякие movzx, для многих места не хватало поэтому пришлось растягивать последнюю секцию и туда jmp/call а потом обратно. Запарился короче неслабо. Смотреть надо в скольких местах эта переменная используется. ![]() |
|
Создано: 04 марта 2007 14:20 · Поправил: Diabolus · Личное сообщение · #7 |
![]() |
eXeL@B —› Вопросы новичков —› Изменение типа переменной |