Size: a a a

Ассемблер

2020 September 07

A

Aleksandr in Ассемблер
Saenro T
Только недавно вспоминал за
call
pop
и вот сейчас встречаю этот код здесь)
Я как то в попытках дизассемблирования биоса наткнулся на
mov sp, XXX
ret
источник

A

Aleksandr in Ассемблер
Долго думал зачем это, потом понял что этот код должен работать при отсутствии озу
источник

ST

Saenro T in Ассемблер
Заставил работать под виндой, но чувствую этот ребус попьёт ещё кровушки...
Никаких проверок нет, просто декодирование. Но что-то в итоге идёт не так как видится...
источник

ST

Saenro T in Ассемблер
Один указатель смотрит в пропасть между сегментами кода и данных... Возможно что-то упускаю из-за отсутствия линуха...
источник

ST

Saenro T in Ассемблер
Напоминает аркадную головоломку с одним финалом) Осталось найти тот самый путь)
источник
2020 September 08

s

s54816 in Ассемблер
Saenro T
Один указатель смотрит в пропасть между сегментами кода и данных... Возможно что-то упускаю из-за отсутствия линуха...
Ты рипнул код и отлаживаешь? Зачем? Возьми да перепиши ключевой цикл, и даже не на ассемблере. А потом перепиши ещё раз, чтобы он декодировал вместо кодирования.
источник

ST

Saenro T in Ассемблер
s54816
Ты рипнул код и отлаживаешь? Зачем? Возьми да перепиши ключевой цикл, и даже не на ассемблере. А потом перепиши ещё раз, чтобы он декодировал вместо кодирования.
Переписал код) Системные вызовы отключил) Так что ему теперь по барабану где работать. Но вопросики остались.
источник

s

s54816 in Ассемблер
Saenro T
Переписал код) Системные вызовы отключил) Так что ему теперь по барабану где работать. Но вопросики остались.
Ну я навскидку указателей в небеса там не увидел. Там указателей-то ключевых два всего. Может, ты с дельта-смещением напутал, когда переписывал?
источник

ST

Saenro T in Ассемблер
Там есть указатель на 600244.
А между тем, один берег 400243, а другой 600244
источник

s

s54816 in Ассемблер
0x600244 — это .bss.
источник

ST

Saenro T in Ассемблер
edx, 0FFh
edi, 0
rax, 0
rsi, rdi = 600244 (где нифига нет)
syscall
источник

s

s54816 in Ассемблер
Так это read() :-D
источник

ST

Saenro T in Ассемблер
буфер с клавы?
источник

s

s54816 in Ассемблер
Ты точно хочешь, чтобы я подсказывал?
источник

ST

Saenro T in Ассемблер
На самом деле он не нужен
источник

ST

Saenro T in Ассемблер
Там потом идёт побайтная сверка буфера и декодированного участка
источник

ST

Saenro T in Ассемблер
Этот участок можно даже выкинуть)
источник

s

s54816 in Ассемблер
Saenro T
Этот участок можно даже выкинуть)
Всё правильно. Он кодируется и сравнивается с точно так же закодированным флагом. Там всё можно выкинуть, кроме двух функций.
источник

ST

Saenro T in Ассемблер
Те две функции правильно декодируют только первый и третий символы)
источник

s

s54816 in Ассемблер
Saenro T
Те две функции правильно декодируют только первый и третий символы)
Да? Ну я не запускал, только дизасм посмотрел.
источник