169 похожих чатов

Code 1 и code 2 ведь одинаковые? code1:

mov rax, rsi
add rax, rbx
add rax, 8
mov rax, [rax]
jmp rax

code2:
mov rax, [rsi+rbx+8]
jmp rax

18 ответов

15 просмотров

я думаю да

maplum- Автор вопроса
Dima Bat
я думаю да

Под отладчиком IDA - разные

разные

maplum- Автор вопроса
Aiwan \ (•◡•) / _bot
нет

Во втором случае получаем GPF при чтении памяти

maplum- Автор вопроса
s54820
Ну rip же.

Насколько я понимаю собственный код mov rax,[rsi+rbx+8] - берем значение rsi (offset Table) прибавляем счетчик i*размер элемента таблицы (*10h), и прибавляем 8 и из вычисленного адреса берем значение в rax

maplum
Насколько я понимаю собственный код mov rax,[rsi+r...

там значение по вычисленному адресу берется я думаю

maplum- Автор вопроса
Dima Bat
ну да я тоже так это понял

И получаем мусор в rax.

maplum
И получаем мусор в rax.

ну так по этому адресу мусор?

А скинь код, байтиками, который у тебя получается?

s54820
А скинь код, байтиками, который у тебя получается?

че се байтиками, будешь машинные команды читать сейчас?

maplum- Автор вопроса
s54820
А скинь код, байтиками, который у тебя получается?

code1: .00000000`0040226D: 4889F0 mov rax,rsi .00000000`00402270: 4801D8 add rax,rbx .00000000`00402273: 4883C008 add rax,8 .00000000`00402277: 488B00 mov rax,[rax] .00000000`0040227A: FFE0 jmp rax code2: .00000000`0040227C: 488B441E08 mov rax,[rsi][rbx][8] .00000000`00402281: FFE0 jmp rax

maplum
code1: .00000000`0040226D: 4889F0 mov rax,rs...

ты второе выражение подругому писал

maplum
code1: .00000000`0040226D: 4889F0 mov rax,rs...

ты делаешь дезассемблер или у тя есть исходный код? что то мне подсказывает там должно быть *8, а не +8

Aiwan \ (•◡•) / _bot
ты делаешь дезассемблер или у тя есть исходный код...

он говорит что смещение у него в rbx уже вычислено

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта