能力值:
( LV12,RANK:340 )
2 楼
你是不是对自身进程进行xor?
对自身代码段加密,不出错才见鬼。
1是代码段一般不可写,需要VirtualProtect。
2是你加密的函数也在代码段,在执行过程中把正在执行的指令xor了,还怎么继续执行。
能力值:
( LV3,RANK:30 )
3 楼
首先非常感谢你哈,看雪论坛真是好。然后这个程序不是对自身的代码xor,我是把别的程序加载进来然后对它进行异或运算。我想应该是没有写权限吧,明天试试VirtualProtect修改权限试试
能力值:
(RANK:10 )
4 楼
其实你应该往"怎么调"的方向去思考..之后自然知道怎么改. 不然遇到类似问题又要纳闷了不是. VC可以直接源码调试, 你就可以断点在崩溃的那条语句, 看看当时的的变量, 内存窗口看看pByte[i]的地址. 琢磨琢磨为啥崩溃.
能力值:
( LV12,RANK:340 )
5 楼
怎么加载的,ReadFile还是CreateFileMapping?
不管怎么样,文件不是以主模块加载到内存中,基址都不太可能是0x00400000了。
看你的代码,好像是直接用的PE文件头里的基址。
能力值:
( LV3,RANK:30 )
6 楼
CreateFileMapping,我没有用0x00400000,我上传一下源码,这里面我还有个问题不懂,就是把映像加载进来修改后,怎么保存回去,因为它加载后是按SectionAlignment对齐,直接保存回文件也是按SectionAlignment对齐,怎么让它按FileAlignment保存回去,谢谢
PEEncode.txt
上传的附件:
能力值:
( LV3,RANK:30 )
7 楼
[QUOTE=唱哥;1372376]其实你应该往"怎么调"的方向去思考..之后自然知道怎么改. 不然遇到类似问题又要纳闷了不是.
VC可以直接源码调试, 你就可以断点在崩溃的那条语句, 看看当时的的变量, 内存窗口看看pByte[i]的地址. 琢磨琢磨为啥崩溃.[/QUOTE]
慢慢适应
能力值:
( LV12,RANK:340 )
8 楼
引用MSDN上关于SEC_IMAGE值得相关介绍:
https://msdn.microsoft.com/en-us/library/aa366537%28VS.85%29.aspx
The SEC_IMAGE attribute must be combined with a page protection value such as PAGE_READONLY . However, this page protection value has no effect on views of the executable image file. Page protection for views of an executable image file is determined by the executable file itself. No other attributes are valid with SEC_IMAGE.
对于文件映射怎么保存这个我不太清楚,不过你这个东西完全可以ReadFile、WriteFile来实现。
前提是你对PE文件结构很熟悉~