小编src*_*ode的帖子

如何获取没有NUL字节的objdump?

我在汇编中有以下代码:

global _start
section .rodata
  hello: db "Hello World!", 10

section .text

_start:
    mov eax,4           
    mov ebx,1          
    mov ecx,hello       
    mov edx,13     
    int 80h             

    ; Terminate program
    mov eax,1          
    xor ebx,ebx           
    int 80h
Run Code Online (Sandbox Code Playgroud)

如果我使用以下代码的objdump,则会得到:

在此处输入图片说明

如果我在objdump中得到了NUL字符,则将无法完成我正在处理的任务。我如何在没有任何NUL(0x00)字节的情况下获取objdump?

x86 assembly nasm objdump shellcode

3
推荐指数
1
解决办法
90
查看次数

为什么在编译时我们甚至需要汇编程序?

如果编译器将高级语言转换为机器代码,为什么我们甚至需要汇编程序呢?是否有任何汇编级语言,我们不能使用编译器?

compiler-construction assembly compiler-optimization

2
推荐指数
1
解决办法
638
查看次数

如何在C++中将值拆分为单个十进制整数

我想在C++中将12345分成1 2 3 4 5.如果不使用模数运算符,我怎么能这样做?任何有用的STL来处理这个问题?

c++

1
推荐指数
1
解决办法
53
查看次数

为什么 getxattr 会填充额外的元素?

我有下面的代码,我无法弄清楚为什么我在缓冲区末尾收到一些奇怪的符号。

char value[100];
    if(getxattr(filename, "user.permission", value, sizeof(value))!=-1){
        //strncpy(val, value, strlen(value));
        printf("value is %s\n", value);
    }
Run Code Online (Sandbox Code Playgroud)

对于长度 > 4 个元素,它会正确打印,但如果该值少于四个元素,它会在末尾附加一些随机字符。

当我打印值的大小时,对于 1-4 之间的任何值长度,它都会显示 6。请有人解释一下为什么会出现这种行为。

c c++

0
推荐指数
1
解决办法
198
查看次数

OpenJDK源代码内部如何解释在何处分配堆内存?

我正在尝试为我的研究项目更改OpenJDK源代码。我想在Java程序中调用新的运算符时知道代码流。

class MyFirstProgram {
    public static void main(String args[]) throws Exception{
        System.out.println("Hello World!");
        int i[] = new int[50];
    }
}
Run Code Online (Sandbox Code Playgroud)

在OpenJDK源代码中,我在新的运算符实现中放入了几张图片。(路径:OpenJDKDev / src / hotspot / share / memory / allocation.cpp

我不确定是否要检查正确的文件以进行内存分配。看起来,即使我调用java -version,它也会打印我多次输入的消息。

当我在用户Java程序中调用新的内存时,我无法找到进行内存分配调用的准确程度(以及确切位置)。

编辑:->使用JDK11。

java jvm adoptopenjdk

0
推荐指数
1
解决办法
99
查看次数