x86-64

    3

    1答えて

    私はLinux X86_64で作業しています。 エントリが表す動的関数の名前を指定して、ELFファイル内の特定のPLTエントリのアドレスを決定する必要があります。 私はアドレスからのファイルのオフセットを知ることができますが、私はアドレスを決定できる必要があります。 を使用してELFファイルを逆アセンブルすると、objdumpはPLTの各エントリにシンボリック名を使用しています。 (ここで、これら

    -1

    1答えて

    私は32ビットシステムで作られたアプリケーションを持っていました。 今、私は64ビットを持っており、アプリケーションは自動的に64ビットの依存関係をロードするように切り替えられました。(64ビットOSではクラッシュします)。しかしsystem32から、ではないWow64からロードするためにそれを強制する方法が 、?

    2

    1答えて

    glibc-2.25のさまざまなバージョン(sse4、ssse3、avx2、avx512)のいくつかのメモリ関数(memcpy、memset、memmove)が、 Linux(glibc 2.12)。 私の最初の試みは、glibc-2.25のタールボールをダウンロードし、こちらの手順に従ってください。https://sourceware.org/glibc/wiki/Testing/Buildsで

    1

    1答えて

    mov rcx,rdx(https://defuse.ca/online-x86-assembler.htmを使用)の出力は48 89 D1を出力します。 this referenceでオペコードをチェックすると、そのバイトシーケンスが命令をどのようにエンコードするかが示されます。 しかし、そのテーブルの2行下(オペコード8B)は、非常によく似たmov命令ですが、オペランドの順序は反転します。 実

    0

    1答えて

    初期化されたデータセクションに5つの文字列を保持するデータ配列を作成します。各文字列は正確に4文字です。各文字列には、最初の文字列の場合は「abcd」、2番目の文字列の場合は「efgh」などの初期データがいくつかあります。ヌル\0文字列には文字は必要ありません。どのようにアセンブリ言語で文字列の配列を初期化できますか? これは私がこれまでに考えることができるものである。 string db "ab

    -1

    1答えて

    キーボードのISRをフックしようとしていますが、 CreateFileが0000007Bh ERROR_INVALID_NAMEを返すため、デバイスを開くことができません。何を私は間違ってやったのですか? invoke DefineDosDevice,[raw],filename1,devicename lea rcx,[filename2] invoke CreateFileA,rcx,G

    4

    1答えて

    64ビットLinuxはデフォルトで小さなメモリモデルを使用しています。これは、すべてのコードと静的データを2GBのアドレス制限以下にします。これにより、32ビットの絶対アドレスを使用できることが保証されます。古いバージョンのgccは、相対アドレス計算のための余分な命令を節約するために、静的配列に対して32ビットの絶対アドレスを使用します。しかし、これはもはや機能しません。アセンブリで32ビット絶対

    0

    1答えて

    私はコンパイラエクスプローラ(https://godbolt.org/)をデフォルトのコンパイラ設定(x86-64 gcc 6.3)で使用しています。次のコード int foo(int num) { int a, b, c; a = 1; b = 2; c = 3; } は、スタックポインタレジスタRSPが変更されることはありません表示されますアセンブ

    1

    1答えて

    1つの番号をとり、それを印刷したアセンブリプログラムを作成しようとしました。しかし、私が1を書いたとき、それは4171を書きました。なぜ、どうすればいいですか?私は、64ビットアセンブリを使用しています、私はnasm -f macho64 scanf.asmとそれを組み立て、gcc -o scanf scanf.o -Wl,-no-pieでリンクしました。そして、私はスキャンマクロ(varible

    0

    1答えて

    これは簡単な問題ですが、頭が回転しています。私は文字列(負の10進数として入力)を符号なし整数に変換する必要があります。 rdiレジスタは、変換される文字列を保持します。 raxレジスタは結果を保持します。 xor rsi, rsi xor rax, rax xor dl, dl xor rdx, rdx convert: mov dl, [rdi+rsi