编程反汇编C语言的问题...分不是问题

2025-03-01 21:56:28
推荐回答(2个)
回答1:

  1. 一般可以通过PEID等查一个未加壳程序的编程语言

  2.  当然也可以通过查壳工具判断一些壳的种类

  3. 反汇编的工具有很多,OD是现在比较常用的,一般动态用OD,静态用IDA,还有W32DASM、DEBUG、C32这些工具

  4. 当我们在C语言中声明了一个char *ch指针,然后他会分配内存给字符串常量abcdef(它们有地方放着了),

    之后才会把那个字符串的第一个字符a的地址赋值给指针变量ch。所以可以给它赋值
啦,这时ch就指向字符串的首地址,就可以在程序中用了。

回答2:

首先 字符串 "abcdef" 是在只读常量区
比如给一下代码
char str[30] = "123456"; // 在栈区分配的字符串
char *pstr = str; // 指针pstr指向字符串str的首地址
strcpy(pstr,"abcdef"); // 是给字符串str赋值
pstr = "abcdef" // 指针指向只读常量区 中 字符串"abcdef"的首地址,并没有给字符串str赋值

还有一点:想要深入理解就学习linux编程
什么汇编指令,对于在应用层来讲不需要学,如果你打算从事偏底层就需要学习汇编