zoukankan      html  css  js  c++  java
  • 完整地扒一个C#程序

    步骤:

    1,使用dnSpy 工具,直接反了C# 程序。

    2,如果第一步失败,仔细看一下程序,是否有加壳,是否有混淆,名称混淆好办,流程混淆难办。

    如果是名称混淆,可以使用工具修复。

    3,这里预计可以用dnSpy 正确反编译C# 程序。

    4,使用dnSpy 导出 C# 程序,成为一个VS的C#项目。

    前置工作全部结束,目前为止,已经有了个VS项目。

    直接打开VS项目,可以打开,

    直接编译VS项目,不能编译。

    代码上上的问题,比如属性重定义,或者类型不匹配,手动修复即可。

    最大的问题,是资源问题。资源找不到。

    因为 dnSpy 把反出来的资源都修改成了 .resources 后缀,变成了二进制文件,

    需要实用工具把文件修复成VS可以识别的资源文件。

    工具,VS已经提供了,具体修复步骤如下。

    1,开启VS命令行,测试 resgen.exe 工具是否可用,理论上可用。

    2,修复命令:resgen.exe *.resources *.resx

      用这条命令修复一个二进制资源文件,变成真的资源文件,

      修复成功后,指定目录下,会出现一个真的资源文件

      需要注意的是,生成的资源文件文件名最好和资源文件对应的源码文件名一致,

      导入得时候,VS自动就能识别。

    3,第二步做完之后,.resx 文件就已经可用了,然后是使用方法。

      打开VS,在VS项目中,找到指定的 .resources 文件,

      从项目中排除,直接删除也可以,然后这个假的资源文件就从项目中不见了。

      然后将新的 .resx 资源文件导入项目即可。

      如果前面名字一致的话,VS可以自动识别对应的资源文件。

    4,把所有资源文件都重新加载一遍,

      基本上资源文件的问题就都解决了。

    然后就可以编译了。(代码问题在之前就已经解决了。)

  • 相关阅读:
    软工实践1816-第四次作业
    软工实践1816-第三次作业
    软工实践1816-第二次作业
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
    Alpha 冲刺 (1/10)
    福大软工 · 第七次作业
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    福大软工1816 · 第六次作业
    福大软工1816 · 第五次作业
  • 原文地址:https://www.cnblogs.com/suanguade/p/14851743.html
Copyright © 2011-2022 走看看