zoukankan      html  css  js  c++  java
  • 一个没有实现的想法。。。

    本文的主题其实是关于Codesmith的授权技术讨论;

    有一个类:

    [Serializable, LicenseProvider(typeof(cn))]
    public sealed class CodeSmithLicense
    {
        // Fields
        private static CodeSmithLicense _codeSmithLicense;
        private static string _enginePublicKeyToken;
        private static DateTime _expirationDate;
        private static bool _isBeta;
        private static bool _isFullTrial;
        private static bool _isProfessional;
        private static bool _isSDK;
        private static bool _isServer;
        private static bool _isStandard;
        private static bool? _isStandardInstall;
        private static bool _isTrial;
        private SecureLicense _license;
        private static DateTime _licenseCacheExpirationDate;
        private static CodeSmithEditions _licensedEdition;
        private static object _lockHandle;
    
    位于CodeSmith.Engine.dll中。。。
     
    

    其实想办法改变这些变量估计就可以通过验证与授权之类的了。

    所以要写一些代码,但怎么然这些代码运行起来呢?我们写的代码好像与CodeSmithStudio.exe没有关系啊!

    其实就是把我们写的一些代码注入到CodeSmithStudio.exe,如果要注入,当然要改原版的程序啦,大家知道改程序用什么啦把(IL语言啊)

    .method private hidebysig static void a(string[] A_0) cil managed
    {
        .custom instance void [mscorlib]System.STAThreadAttribute::.ctor()
        .entrypoint
        // token: 06000527
        .maxstack 4
        .locals init (
            [0] class [CodeSmith.Engine]CodeSmith.Engine.FeatureNotAllowedException exception)
        L_0000: call void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles() // 282B05000A
        L_0005: ldc.i4.0  // 16
        L_0006: call void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool) // 282C05000A
        L_000b: ldstr "CodeSmith Generator Studio" // 7289150070
        L_0010: ldc.i4.1  // 17
    

    在入口点加入我们写的代码行不?

    代码加完了,再编译回来(大家注意强命名啦,否则编译回来无法运行,要去掉强命名的)

    只是一些思路,我也没有去实现,呵呵,仅供技术交流。。。

  • 相关阅读:
    Linux perf命令详解及常用参数解析
    pidstat 命令(Linux 进程使用资源情况采样)
    Katalon Studio入门学习之三种获取元素方式
    用Spring和c3p0工具简单的实现增删改查
    Spring AOP(面向切面示例)
    Spring属性注入、构造方法注入、工厂注入以及注入参数(转)
    PowerDesigner最基础的使用方法入门学习(转)
    Struts文件上传
    struts转换器
    Struts拦截器
  • 原文地址:https://www.cnblogs.com/zhahost/p/2005189.html
Copyright © 2011-2022 走看看