能力值:
( LV2,RANK:10 )
|
-
-
101 楼
厉害呀
|
能力值:
( LV2,RANK:10 )
|
-
-
102 楼
66666666
|
能力值:
( LV1,RANK:0 )
|
-
-
103 楼
666
|
能力值:
( LV6,RANK:90 )
|
-
-
104 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
105 楼
3
|
能力值:
( LV1,RANK:0 )
|
-
-
106 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
107 楼
感谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
108 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
109 楼
11111
|
能力值:
( LV1,RANK:0 )
|
-
-
110 楼
6666
|
能力值:
( LV1,RANK:0 )
|
-
-
111 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
112 楼
牛B克拉斯
|
能力值:
( LV1,RANK:0 )
|
-
-
113 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
114 楼
666666666
|
能力值:
( LV2,RANK:10 )
|
-
-
115 楼
666
|
能力值:
( LV5,RANK:70 )
|
-
-
116 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
117 楼
t
|
能力值:
( LV2,RANK:10 )
|
-
-
118 楼
对不起
|
能力值:
( LV1,RANK:0 )
|
-
-
119 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
120 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
121 楼
我看看
|
能力值:
( LV2,RANK:10 )
|
-
-
122 楼
太长了,没仔细看。只说下他的函数调用。基本有2种形式的子函数调用 1. 子函数是外部函数,那么他会在子函数的stub函数中,把vreg_table中对应的寄存器值放到x0, x1等寄存器,然后bl调用子函数,返回后,把x0返回到vreg_table中对应的位置。这个和vmprotect的区别在于,vmprotect还原所有寄存器值(等于出了虚拟机),而这个只还原参数所用到的寄存器,这个实现的区别本质在于vmprotect无法知道子函数有几个参数,从什么寄存器传。 2. 如果子函数也在虚拟机里,那么有2种情况,第一种,如果被调用者和调用者的vreg_table轮转是一致的,那么好像是直接bl过去。如果2个函数的vreg_table轮转不一致,那么在pcode级别会有轮转切换的指令集,切换完再bl过去,调用完,会轮转回来。
|
能力值:
( LV1,RANK:0 )
|
-
-
123 楼
666
|
能力值:
( LV4,RANK:40 )
|
-
-
124 楼
666
|
能力值:
( LV2,RANK:10 )
|
-
-
125 楼
看看 666
|
|
|