我正在尝试反汇编程序以查看系统调用汇编指令(我相信INT指令)和GDB处理程序,并编写了一个程序(见下文),用于打开和关闭文件.
我能够跟随调用与GDB打开,直到它执行了一个调用.
当我试图告诉GDB"反汇编0x ...."(调用地址)时,它回复"没有函数包含指定的地址".
是否有可能强制GDB以内存地址反汇编(或在尽可能好的汇编程序中显示它)?如果是这样,怎么样?
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE* f;
f = fopen("main.c", "r");
if (!f) {
perror("open");
return -1;
}
fclose(f);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 只是想知道,关于我的内置宏的替代方案,是否可以通过使用int 21h windows API 来避免使用StdOut宏?如:
.data
msg dd 'This will be displayed'
;original macro usage:
invoke StdOut, addr msg
;what I want to know will work
push msg
int 21h ; If this does what I think it does, it should print msg
Run Code Online (Sandbox Code Playgroud)
是否存在这样的事情(如使用int 21h打印东西),或者存在类似的东西,但不完全是21h.或者我完全错了.
有人可以为我澄清一下吗?
谢谢,
Progrmr
assembly ×1
disassembly ×1
gdb ×1
internals ×1
linux ×1
linux-kernel ×1
masm ×1
masm32 ×1
system-calls ×1
winapi ×1
x86 ×1