コンソールプログラムを「クラック」して、何かを表示させようとしています。問題は、改行(\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"
、2つの奇妙な文字(おそらく0x13と0x10のASCII表現)を取得してみました。