zoukankan      html  css  js  c++  java
  • 介绍个好玩的,Crack .NET

                                         介绍个好玩的,Crack .NET

                                                    周银辉 

    这是一个.net调试工具(当然改吧改吧也可以拿来干坏事),它可以遍历.net应用程序的托管堆, 这不是它最犀利的地方,其相比于其他(比如snoop)来说,犀利的地方在于,其可以用IronPython作为脚本进行调试。这对于没有vs环境并且还想“即时”调试的人来说,很爽啊(至于有多爽,自己去体会吧)。

    地址在这里: http://cracknetproject.codeplex.com/ 

    稍稍提示一下,以免你摸不着头脑:

    1,要将 IronMath.dll 和 IronPython.dll放在GAC下

    2,运行后,你的入手点应该是在presentationFramework下面的application 类型下,找到Application.Current属性,从这里开始(否则你会很郁闷地发现全是静态字段,实例字段呢?)

    3,找到你关心的对象后,选中它,点击”Scriptorium", 你关心的对象会被取一个别名叫做“INPUT", 然后就可以开始写脚本了。

    一个简单的例子:
    有如下一个窗口

    <Window x:Class="WpfApplication1.MainWindow"
            xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
            Title
    ="MainWindow" Height="100" Width="200">
        
    <StackPanel Orientation="Vertical">
            
    <PasswordBox/>
            
    <Label Content="this is a label"/>
        
    </StackPanel>
    </Window>

    我想在调试时取得密码框的密码并显示在标签上。
    首先,运行程序,并用Crack.net导航到标签控件:
     

    然后Scriptorium,写如下ironpython代码:

    # Uncomment the following lines if you need to use the types they import.
    #
    import clr
    #
    clr.AddReference("PresentationCore")
    #
    clr.AddReference("PresentationFramework")

    from System.Collections import *
    from System.Collections.Generic import *
    from System.Diagnostics import *
    #from System.Windows import *
    #
    from System.Windows.Forms import *
    #
    from System.Windows.Controls import *

    if INPUT <> None :
        
    INPUT.Content = "this password is : " + INPUT.Parent.Children[0].Password
    else :
        
    print "The INPUT variable has no value."

    Debug.WriteLine(
    "This text is sent to the Debug Output workspace, if it is open.")

     

    很爽吧,这个用在没有vs的环境中,在一定程度上可以代替远程调试(远程调试很烦,经常由于防火墙以及windows安全策略之类的折腾半天都连不上)

    原理:

    1,首先是进程注入部分,这和我以前写的”.net 进程注入“这篇随笔的原理是一样的

    2,脚本部分,采用的是IronPython,其有一个叫PythonEngine的东东, 可以动态加载和运行Python代码。(python简明教程看这里,IronPython的一些资料看这里

  • 相关阅读:
    质量属性的六个常见属性应用场景(淘宝篇)
    软件架构师如何工作?
    寒假学习第十五天
    寒假学习第十四天
    ADMEMS方法体系:3个阶段,一个贯穿环节之Refined Architecture阶段阅读感悟
    《企业应用架构模式》阅读笔记一
    《重构:改善既有代码的设计》阅读笔记三
    大数据分析01——数据爬取
    《重构:改善既有代码的设计》阅读笔记二
    kettle--Trans插件之输出
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/1758749.html
Copyright © 2011-2022 走看看