Я пытаюсь «взломать» консольную программу, заставляя ее что-то отображать. Проблема в том, что я не могу напечатать новую строку (\r\n
).
С дизассемблером я нашел место и отредактировал бинарный файл:
push 4ad0eb46 ; the string (let's pretend "Hi guys")
push 4ad0eb80 ; and the format ("%s")
call near ds:[<&msvcrt.printf>] ; call printf
jmp 4ad0eb4f ; skip data
; now here I coded the strings
mov ds:[4ad289ec],eax ; and here the program resumes
Как я уже сказал, я не могу напечатать новую строку. Я попытался закодировать "\r\n"
в строке формата (чтобы она стала "%s\r\n"
, как я это сделал бы в C) и напечатать "Hi guys\r\n"
, и закодировать ее в
Сама строка (делающая это "Hi guys\x13\x10"
) и получающая "Hi guys"
и два странных символа, вероятно, представление ASCII 0x13 и 0x10.