在前次反编译的基本上,昨晚花了几个小时的时间部分反编译一个被混淆过的 .net 程序。终于分析出了相关的代码,期间不停的访问MSDN网站现学现买。发现 .net 整个就是一开源软件,就算是混淆之后分析MSIL也仅仅是时间问题,比x86汇编简单了几个数量级。
相关 IL 代码
汇编格式 | 格式 | 说明 |
---|---|---|
add | 58 | 将两个数值相加,并返回一个新数值。 |
call methodDesc | 28 < T > | 调用由 methodDesc 描述的方法。 |
ldc.i4 | 20 | 将值 num 推送到堆栈上。 |
ldc.i4.1 | 17 | 将 1 推送到堆栈上。 |
ldloca.s index | 12 < unsigned int8 > | 将位于 index 处的局部变量的地址加载到计算堆栈上(短格式)。 |
nop | 00 | 执行没有任何行为的操作。 |
ret | 2A | 从方法返回,可能返回一个值。 |
stloc.0 | 0A | 将值从堆栈中弹出到局部变量 0 中。 |
stloc.s index | 13 < unsigned int8 > | 从堆栈中弹出值并将其存储在局部变量 index 中(短格式)。 |
其他技能
计算堆栈