直接关闭指定代码区域的优化不就可以了吗?
#pragma optimize( "", off )
你不需要优化的代码
#pragma optimize( "", on)
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289100.htm
[原创] vmp3.5.1 win32 runtime.inc 编译替换注意
409 浏览
7 回复
Mxixihaha
直接关闭指定代码区域的优化不就可以了吗?
#pragma optimize( "", off )
你不需要优化的代码
#pragma optimize( " ...
可能也是一种方案。但是确实没这么没试过。另外这个优化和编译器比较相关。可能不同编译器表现不一样。因为我之前尝试换个地方就好了,所以也没有再过多纠结。我看到有人应该是用asm 汇编 去处理了这里,这种方式应该都不怕编译器影响。
直接关闭指定代码区域的优化不就可以了吗?
#pragma optimize( "", off )
你不需要优化的代码
#pragma optimize( " ...
可能也是一种方案。但是确实没这么没试过。另外这个优化和编译器比较相关。可能不同编译器表现不一样。因为我之前尝试换个地方就好了,所以也没有再过多纠结。我看到有人应该是用asm 汇编 去处理了这里,这种方式应该都不怕编译器影响。
Mxixihaha
直接关闭指定代码区域的优化不就可以了吗?
#pragma optimize( "", off )
你不需要优化的代码
#pragma optimize( " ...
反正 问题定位了。怎么改都可以。
直接关闭指定代码区域的优化不就可以了吗?
#pragma optimize( "", off )
你不需要优化的代码
#pragma optimize( " ...
反正 问题定位了。怎么改都可以。
还是不行 按照上面的代码注释掉了 用vs2010编译了 替换进去还是软件跑不起来
Cr_Ring
还是不行 按照上面的代码注释掉了 用vs2010编译了 替换进去还是软件跑不起来
原理都讲得比较清楚了。自己对比一下看下编译器是不是有没有替换的的CALL REG类型的。而是优化成别的指令了。这个没什么很复杂的地方。
还是不行 按照上面的代码注释掉了 用vs2010编译了 替换进去还是软件跑不起来
原理都讲得比较清楚了。自己对比一下看下编译器是不是有没有替换的的CALL REG类型的。而是优化成别的指令了。这个没什么很复杂的地方。
IamHuskar
原理都讲得比较清楚了。自己对比一下看下编译器是不是有没有替换的的CALL REG类型的。而是优化成别的指令了。这个没什么很复杂的地方。
就是我这边用vs2010编译出来了 然后也替换了 然后把优化都去掉了 在就是按照大佬你上面的代码注释了 只虚拟代码能跑 但是随便多加一个选项就崩了 被加密程序直接提示SEH异常 跑不起来 是这样的情况
原理都讲得比较清楚了。自己对比一下看下编译器是不是有没有替换的的CALL REG类型的。而是优化成别的指令了。这个没什么很复杂的地方。
就是我这边用vs2010编译出来了 然后也替换了 然后把优化都去掉了 在就是按照大佬你上面的代码注释了 只虚拟代码能跑 但是随便多加一个选项就崩了 被加密程序直接提示SEH异常 跑不起来 是这样的情况
现在是这样 我按照大佬你的教程做了现在他是call eax这样但是 eax的值是一个空地址 然后导致被加密程序崩溃了这个不知道是为什么 希望大佬给点建议
Cr_Ring
现在是这样 我按照大佬你的教程做了现在他是call eax这样但是 eax的值是一个空地址 然后导致被加密程序崩溃了这个不知道是为什么 希望大佬给点建议
看起来还是有些没有替换成功。IntelFunction::ReadFromBuffer 一块块逻辑看吧。没啥好办法。
现在是这样 我按照大佬你的教程做了现在他是call eax这样但是 eax的值是一个空地址 然后导致被加密程序崩溃了这个不知道是为什么 希望大佬给点建议
看起来还是有些没有替换成功。IntelFunction::ReadFromBuffer 一块块逻辑看吧。没啥好办法。