zoukankan      html  css  js  c++  java
  • .net破解二(修改dll)

    多谢大家支持!

    昨天说了一下反编译与剥壳(.net破解一(反编译,反混淆-剥壳,工具推荐)),今天就来修改修改dll,为了方便,我自己写一个简单程序用来测试

    代码如下:

    一个 ConsoleApplication,输出Hello World.

    现在我想修改它,让他输出我想要的内容,或者直接改变该方法的功能,但是没有源码,只有Console.exe


    工具:Reflexil 它是Reflector的一个插件

    工具获取:1.可以直接到Reflector官网下载http://www.red-gate.com/products/dotnet-development/reflector/add-ins

         2.打开Reflector, Tool=>Add-ins=>Add-In Gallery, 跳转到 上面的下载地址

    下载好Reflexil后,在Add-ins 界面,点"+",选择Reflexil.Reflector.AIO.dll,然后Close

    现在在Tool中会多一个Reflexil选项

    它的界面


    用法:

    把我刚才写的Hello world拖进Reflector,我们选中程序集,命名空间,类命,方法, Reflexil的界面都是不一样的.

    这里可以知道,我们能注入类,接口,枚举,方法,等,也可以重命名,删除.

    现在我们来添加一个方法试试,选择Inject method   Item Name:Demo(此时只能声明无参,无返回值的方法,后面会讲什么添加这些)

    点ok会给出警告

     意思就是,做大改动(注入,删除,重命名)时你是看不见结果,让你保存一次在导入新的dll文件,那就保存一次

    保存好后,把新dll拖到Reflector中,就会发现在 Programe中多了一个Dmeo方法.

    现在来给Demo 写实现

    选择Demo 后右边的界面为:

    选择Main:

    instructions 中是IL指令, 高玩可以直接修改添加指令,但不是高玩咋办?

    我们选择Replace all with code... 替换所以代码.

    不过在这之前 先在Parameters添加一个参数string name,并在Attributes 将Return type设为stirng

    我再次点击Replace all with code...  代码已经更新为

    修改完成后,点compile 如果没有错误,就会生成IL指令,点ok就行

    现在在来修改一下Main方法,调用Demo

    代码已经改完,现在保存看看执行效果:

    原程序:

    修改后程序:

     总结:上一篇文章我是需要登录,而现在我们也知道方法,只需要找到对应的登录方法,直接改成返回true,就能登录了

    发现问题 请留言,如果喜欢请推荐一下,

    转载请注明出处! 谢谢

  • 相关阅读:
    C语言指向指针的指针
    C语言注意事项
    C语言指针
    C语言字符串
    C语言数组
    C语言交换两个数的值
    C语言位运算符
    C语言各种进制输出
    C语言中各种进制的表示
    C 语言sizeof运算符
  • 原文地址:https://www.cnblogs.com/jio92/p/editDll.html
Copyright © 2011-2022 走看看