69,371
社区成员
发帖
与我相关
我的任务
分享
#pragma comment(linker,"/SECTION:.text,RW")
#include <stdio.h>
#ifdef _DEBUG
#define OFFSET 0x0C
#else
#define OFFSET 0x01
#endif
int *p;
int p2() {
int a;
a=2;
return a;
}
int main() {
p=(int *)((char *)p2+OFFSET);
printf("p2==0x%08x,p==0x%08x,*p==%d\n",(char *)p2,p,*p);
*p=3;
printf("p2()==%d\n",p2());
return 0;
}
//p2==0x00401000,p==0x0040100c,*p==2
//p2()==3
//
#pragma comment(linker,"/SECTION:.text,RW")
#include <stdio.h>
int *p;
int p2()
{
int a=87;
a=a+15;
return a;
}
int main()
{
int o;
p=(int *)((char *)p2+59);
*p=0xE883FC45;
o=8;
printf("p2()==%d\n",p2());
scanf("%d",p);
return 0;
}
最后的输出结果是【p2()=72】,嘿嘿,坐等领分。。。