文章目录[隐藏]

易风软件库2月6日消息,会有一些关于软件破解方式,源代码获取,重新编译的问题,这本书是供以后参考的。

著名的Reflector和开源的ILSPY都是。NET程序集,但它们不能为您完成所有任务。

0x01:

当遇到反编译源代码外调用的类的属性时,可能会得到更多的set_Name或get_Name来澄清程序集调用没有完全加载。

因为没有元数据,反编译器无法分辨这是方法还是属性。

有时候反编译丢失的源代码中的-1其实就是某个数的最大值。因为在反编译期间不加载依赖程序集,所以该工具会更改类似int的等效值。MaxValue转换为-1。

因此,完成加载依赖项是一个好习惯。反编译时如果找不到依赖项,Reflector会提示你手动选择。你可以选择手动或者疏忽(点击取消就是疏忽),但是ILSPY不会提示你。

0x02:

新版Reflector支持C#6的特性,将一些属性赋值反编译成Lumbda表达式。但是,实际上,该项目不是C#6项目,编译器无法检测到它。

处理方法是选择适当版本的。NET framework从主界面工具栏的下拉列表中选择,然后生成程序集的源代码。

0x03:

一些WPF强标题应用程序在反编译成项目后将无法运行,因为资源文件也被强标题引用。

也许重新签名,交换资源调用的公钥就能解决这个问题,但是我没试过。

0x04:

在反编译MVC Web项目的时候,会在控制器类和预编译视图中出现很多类似的类(如果发布的时候启用的话)。

[CompilerGenerated]私有静态类o__SiteContainer19 {公共静态调用site p _ _ site 1a;公共静态调用站点p _ _ Site1b公共静态调用site p _ _ site 1c;公共静态调用站点p _ _ Site1d公共静态调用站点p _ _ Site1e公共静态调用站点p _ _ Site1f公共静态调用site p _ _ site 20;公共静态调用站点p _ _ Site21}

这些代码是编译器为优化函数而生成的静态类和静态属性。参考源代码后,你会发现这些代码相对容易恢复,复杂的可以保留。

我的做法是把[CompilerGenerated]功能干掉,把类名o__SiteContainer19批量换成o__SiteContainer19,然后把属性里的空字符串换了。

0x05:

有时候我们不需要源代码,只需要修正某个值或者某个代码。所以我们需要的是Reflexil,当然还有更猛的mono.cecil和dnlib,这是我知道的最牛逼的三个项目。

团体喜欢用ILSPY读取源代码,然后用mono.cecil修改程序。

但是修改后发现不行了,因为开发者用了汇编的强标题。所以我一般用mono.cecil做以下事情来杀死公钥签名。

但是修正后发现不工作了。因为开发人员已经使用了InternalsVisibleTo特性的强标题,所以我通常使用mono.cecil来做以下操作,以杀死InternalsVisibleToAttribute值之外的公钥。

但是修改后发现不行了。因为开发人员使用了程序集的强标题导致编译带有强标题的程序集,所以我通常使用以下操作来杀死定义之外的公钥。

以上操作完成后,把心意的变化写入软件,就可以流畅运行了。

0x06:

当然也有一部分是脱壳的,一般需要找相应的脱壳工具。如果只是修改关键逻辑,应该可以通过关键词搜索找到线索,但前提是能看到源代码。

对于既没有工具做shell,也没有工具看源代码的人,可以向C++反汇编专家求助。

总结:

以上就是今天所分享的内容了,更多行业知识、软件引荐、功能比照、工具测评请关注易风软件库。每天给大家带来更高效的企业服务软件,其中包括有微信,惠易购,赞聊,淘米购,叮咚盲盒,青蛙易购,支付宝,香蕉赶集,乐享购,淘盟铺,亲聊,探聊,诚智通,伶信,QQ,新易选,红包辅助,享乐好物,易民购,梦幻盲盒,苹果微信多开,微信分身,安卓微信多开,淘客购,旗语,点约,优品铺,创信等现如今热门社交软件,其中功能有秒抢,避雷,埋雷软件,扫尾,单透软件等一些红包强项外挂功能软件免费下载使用!