作为对Hackthebox.eu的逆向工程挑战的一部分,我试图反编译.net可执行文件。整个程序成功反编译但有两个错误。我将在整个方法下面发布。
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的'是一种类型,在给定的上下文中无效"
IntPtr num3 = (IntPtr) &num2;
然后是未定义变量num2的错误。
这是DotPeek中的错误吗?
答案 0 :(得分:0)
我今天刚刚做了这个挑战。 dot Peek没什么问题,但是您需要对代码进行一些细微的更改。
在C ++(非托管代码)中,指针基本上是指向内存地址的变量。在此特定代码中,num3是指向变量num2的地址的指针。希望能帮助清理问题。