首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotpeek有问题反编译代码?

Dotpeek有问题反编译代码?
EN

Stack Overflow用户
提问于 2018-04-13 07:50:36
回答 1查看 2K关注 0票数 0

作为Hackthebox.eu逆向工程挑战的一部分,我尝试对.net可执行文件进行反编译。整个程序成功地解压缩,但有两个错误。我会把整个方法写在下面。

代码语言:javascript
复制
  private unsafe void kapa(object sender, EventArgs e)
{
  int num1 = 0;
  this.z = "";
  this.o = "";
  this.m = "";
  int num2;
  IntPtr num3 = (IntPtr) &num2;
  int num4;
  int* numPtr1 = &num4;
  int num5;
  int* numPtr2 = &num5;
  int num6;
  int* numPtr3 = &num6;
  int num7;
  int* numPtr4 = &num7;
  int num8;
  int* numPtr5 = &num8;
  int num9;
  int* numPtr6 = &num9;
  int* numPtr7 = &num1;
  int num10 = 79;
  *(int*) num3 = num10;
  *numPtr1 = 128;
  *numPtr2 = 128;
  *numPtr3 = 105;
  *numPtr4 = 112;
  *numPtr5 = 112;
  *numPtr6 = 129;
  *numPtr7 = 130;
  this.pp = num2;
  this.linear(this.pp);
}

这一行有一个错误:

"'IntPtr‘是一种类型,在给定的上下文中无效“

代码语言:javascript
复制
IntPtr num3 = (IntPtr) &num2;

然后是一个未定义变量num2的错误。

这是DotPeek中的错误吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-09 15:17:58

我今天刚做了这个挑战。点Peek没有什么问题,但是您需要对代码进行一些细微的更改。

  1. 使用num2而不被分配:只需将其赋值到(IntPtr)行上方的0
  2. IntPtr是一个在给定上下文中无效的类型:您只需要修改要被(IntPtr)(&num2 2)的代码。这样编译器就知道您正在将num2的地址转换为IntPtr。

在C++ (非托管代码)中,指针基本上是指向内存地址的变量。在这段特定的代码中,它说num3是指向变量num2地址的指针。希望这能帮你理清问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49811893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档