最近学习Windows pe权威指南,学到了第5章,166页的地方出了点小问题。我发现提供的修改过的dll文件有问题,b文件夹下的程序不能运行。
我的电脑是win7的,我就看看他的代码修改的情况,发现10012a3这个位置的字节码修改的有问题,他是一个地址,是messagebox函数的内存地址,作者的是77d507ea,但是我用lordpe查来发现 userdll总是加载在,77090000这个位置上,显然作者的修改有问题。我在xp系统上面发现代码可以运行,这样就更加的肯定是不同的系统在加载userdll的时候加载的位置不一样。
知道问题的原因了。那就好办了。哦对了,发现lordpe 的一个小问题。在导出表的导出函数那好像把函数的文件地址搞错了。刚好和另一个函数搞反了。
第二个 第三个貌似搞反了。英文版的也是。
ps:忘了点问题,发现win7在每次启动后,实际上 user32.dll加载的基地址都不一样,所以实际上直接跳转到messagebox的修改是错误的。必须是有载入器修改IAT表