MSIL 反编译 学习

       最近在捣鼓一个加密算法的破解,搞得头晕眼花啊,加密组件被混淆过了,常用的ReFlector 反编译工具基本无能为力,只能勉强看看IL,以前从未研究过这东东,学习起来真是头大了,看来以后得好好学习啊。花了N天的时间,没日没夜的捣鼓,还是最后在牛人的帮助下,才搞掂! 郁闷

 

Brfalse_S 字段                  如果 value 为 false、空引用或零,则将控制转移到目标指令。
Ldarg_1 字段                    将索引为 1 的参数加载到计算堆栈上,  参数索引 从 1 开始。
Br 字段                             无条件地将控制转移到目标指令。
Br_S 字段                         无条件地将控制转移到目标指令(短格式)。
Brtrue_S 字段                   如果 value 为 true、非空或非零,则将控制转移到目标指令(短格式)。
Ldloc_0 字段                    将索引 0 处的局部变量加载到计算堆栈上,变量索引从0开始。
Ldloc_1 字段                    将索引 1 处的局部变量加载到计算堆栈上。
Ldloc_2 字段                    将索引 2 处的局部变量加载到计算堆栈上。
Ldloc_S 字段                    将特定索引处的局部变量加载到计算堆栈上(短格式)。 
Ldelem_U1 字段              将位于指定数组索引处的 unsigned int8 类型的元素作为 int32 加载到计算堆栈的顶部。
Stloc_0 字段                    从计算堆栈的顶部弹出当前值并将其存储到索引 0 处的局部变量列表中。
Stloc_1 字段                    从计算堆栈的顶部弹出当前值并将其存储到索引 1 处的局部变量列表中。
Stloc_2 字段                    从计算堆栈的顶部弹出当前值并将其存储到索引 2 处的局部变量列表中。
Stloc_S 字段                    从计算堆栈的顶部弹出当前值并将其存储在局部变量列表中的 index 处(短格式)。

Ldc_I4 字段                     将所提供的 int32 类型的值作为 int32 推送到计算堆栈上。
Ldc_I4_1 字段                 将整数值 1 作为 int32 推送到计算堆栈上。
Ldc_I4_8 字段                 将整数值 8 作为 int32 推送到计算堆栈上。
Ldlen 字段                       将从零开始的、一维数组的元素的数目推送到计算堆栈上。
Shr 字段                           将整数值右移(保留符号)指定的位数,并将结果推送到计算堆栈上。
Xor 字段                          计算位于计算堆栈顶部的两个值的按位异或,并且将结果推送到计算堆栈上。
Conv_I4 字段                  将位于计算堆栈顶部的值转换为 int32。
Conv_U1 字段                 将位于计算堆栈顶部的值转换为 unsigned int8,然后将其扩展为 int32。
Conv_U2 字段                 将位于计算堆栈顶部的值转换为 unsigned int16,然后将其扩展为 int32。
Stelem_I1 字段                 用计算堆栈上的 int8 值替换给定索引处的数组元素。
Mul 字段                          将两个值相乘并将结果推送到计算堆栈上。
Add 字段                          将两个值相加并将结果推送到计算堆栈上。
Ceq 字段                           比较两个值。如果这两个值相等,则将整数值 1 (int32) 推送到计算堆栈上;否则,将 0 (int32) 推送到        计算堆栈上。
Clt 字段                             比较两个值。如果第一个值小于第二个值,则将整数值 1 (int32) 推送到计算堆栈上;反之,将 0 (int32) 推送到计算堆栈上。
Ret 字段                            从当前方法返回,并将返回值(如果存在)从调用方的计算堆栈推送到被调用方的计算堆栈上。

Nop 字段                           如果修补操作码,则填充空间。尽管可能消耗处理周期,但未执行任何有意义的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值