スタック内にローカル変数を作成したか、または文字列用にメモリを割り当てていて、値を入れたいとします。ローカル変数に文字列を動的にロードする
push ebp
mov ebp, esp
sub esp, 0xff ; 255 bytes
そしてCにスタック内の文字列を格納:
strcat(my_str1, "something1");
strcat(my_str1, get_var2());
strcat(my_str1, "something3");
strcat(my_str1, get_var4());
私はFASMやNASMで "strcatの" なしていることを行う方法undertandたい:
;1
mov byte ptr [esp - 1], 's'
mov byte ptr [esp - 2], 'o'
mov byte ptr [esp - 3], 'm'
mov byte ptr [esp - 4], 'e'
; and so on
はどのようにこのです完了しました?そして、 "get_var2()"と "get_var4()"の部分については?
;2
call get_var2
mov ??byte?? ptr [esp - 11], eax
; or lea?
Cで最初に 'strcat'を実装してみましょう(ライブラリ関数を使用せずに)。次に、それがどのように動作するかを確認し、asmで同じことを実行できます。 – Jester