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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我们都知道通过VS工具自带的打包后会生成两个文件,一个是exe文件,一个是msi文件。 需要说明的是msi文件时window installer开发出来的程序安装文件,它可以让你安装、修改、卸载你所安装的程序,也就是说VS工具打包生成的msi文件就是window installer的数据包,把所有和安装文件相关的内容封装在一个包里。VS工具打包生成的exe文件是主要是用于检查安装的环境,当安装的环境检查成功后,会自动再安装msi文件。当然可能会有exe文件也能直接安装的,但是开发exe的时候要比msi困难多,因为需要编写和安装、修改、卸载相关的很多内容,而msi把这些功能都集成化了,易于开发windows程序安装包。 而这个编辑器就是可以自由修改MSI中的各项值, 比如VS生成的安装包安装后,桌面快捷图标的属性中“查找目标”和“更改图标”这两个按钮不能使用,可使用以下方法: (1)下载此软件(免费破解版) (2)安装orca后,用orca打开msi安装包,在左边的Table列表中找到Shourtcut表,在右边记录中找到桌面快捷方式的记录,修改该记录的Target属性为 [TARGETDIR]应用程序名称.exe(看Directory列中值为DesktopFolder的那一行) (3)保存修改后的msi文件,重新安装后生成的快捷方式就可以查找图片和更改图标了。 再安装这两个按钮就可以使用了。。。 这只是此工具牛刀小试一下而已, 更多功能等待你去挖掘。。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值