能力值:
( LV2,RANK:10 )
|
-
-
2 楼
加百力,搞得东西还真多。MSIL也搞过?
|
能力值:
(RANK:510 )
|
-
-
3 楼
去年夏天搞过几周,论坛上玩MSIL的会员似乎不多,很快就沉下去了。
|
能力值:
(RANK:1170 )
|
-
-
4 楼
下来看看,貌似原理和.net壳的原理差不多了
|
能力值:
(RANK:510 )
|
-
-
5 楼
要想实现加壳或其他高级技术,代码动态变化是一项基础,所以当初就专门研究了一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
1、感觉是不是你的ShowJudge 写的有问题
2、感觉楼主应该把Test独立起来,别放到Main函数中调用。
3、感觉不是压栈不足还是过度的问题,而是JIT是否能成功编译的问题
都是个人感觉,没有实际测试,如有不妥,请见谅
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
其实还有一个感觉,就是lz可能参加过传xiao,
开个玩笑~~
|
能力值:
(RANK:510 )
|
-
-
8 楼
对于第一个点,我看到的返回结果是0。
对于第二个点,没明白您的意思是什么?
对于第三个点,我在文章中打“★”的位置已经说明了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
1. VirtualProtect返回true
2. 增加一个函数Test1,里面调用Test;在Main中调用Test1,而不是Test,应该就会明白我说的意思
|
能力值:
(RANK:510 )
|
-
-
10 楼
我是直接从堆栈顶部读取的VirtualProtect的返回值。这样做应该没有问题吧?你是从什么地方读到返回值为true?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我直接用C#写的,反出来的IL:
call bool Test.Form1::VirtualProtect(native int, uint32, uint32, uint32&)
brfalse.s L_0057
ldstr "VirtualProtect Ok"
显示的是OK,也就是返回true
另外,这个测试做的不完整,你可以做两个测试
一个Test就像你写的,另一个Test里面内容写多一些,也就是针对tiny和fat两种方法体做修改
得出来的结论会比较完整
|
能力值:
(RANK:510 )
|
-
-
12 楼
多谢blackboy!
确实还可以深入研究一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
收下了
|
|
|