zoukankan      html  css  js  c++  java
  • 源码混淆相关文章

    http://www.21road.net/?action=show&id=591

    MaxToCode加密过程全解析!

     xToCode大体的执行过程就是这个样子的。可能会略有出入。不过思路应该是一致的,


    根据上面的执行过程我们也不难猜出其的加密过程(不一定完全一致,思路差不多)

    1.利用ildasm.exe反编译程序,得到IL代码。(调用Win32API:CreateProcess或者WinExec,并加上程序运行参数)
    2.去掉签名和注释。
    3.分析IL代码(应该是利用正则表达式)
    4.判断Assmebly中每个Class是否含有静态构造函数,如果没有加上自己的函数作为该类的静态构造函数,否则将原有的方法改名,添加自己的函数并在函数末尾调用被改名的函数。该函数就是动态解密的函数,这个函数在它附带的DLL中。
    5.保存更改好的IL代码。并利用 ILAsm.exe 编译更改的代码。(这时候并没有加密原有函数)
    注:MaxToCode中间处理的IL代码被保存在“C:\Documents and Settings\[用户名]\Local Settings\Temp”临时目录里,好像是这个,因为破解太久了记不清了,你可以搜索一下“C:\Documents and Settings\[用户名]”而且在其编译IL完后,好像没有删除更改和没有更改的IL代码。你可以利用windows的搜索上面这个目录后缀为il的文件。应该就是了。
    6.打开编译好的文件(DLL或EXE)根据文件的原数据,找到每个类方法的文件偏移量以及大小,读取其内容进行加密,写入文件的其它位置(具体我没有分析,你可以新建一个Section,也可以修改原有的Section,然后更改偏移量。具体做法很多,你可以参考PE文件结构),最后修改原有每个类方法的数据(不知道是不是糊填的,没有研究)并保存该DLL或EXE,并将MaxToCode附带的解密DLL拷贝到程序目录下。
    7.加密过程完成。

    基本思路是如此,此外还会涉及到别的比如资源等等。

     http://www.21road.net/?action=show&id=589

    MaxtoCode对.Net程序加密的原理及解密探讨 

  • 相关阅读:
    《构建之法》心得体会
    简单工厂模式加减乘除器
    个人简介
    单元测试和代码覆盖率工具的使用
    Bookstore系统缺陷报告
    《构建之法读后感》
    3137102432_ 施少兵_ lab3
    3137102432_施少兵_实验2
    个人简介
    第六次作业:购物系统缺陷
  • 原文地址:https://www.cnblogs.com/zc22/p/1719067.html
Copyright © 2011-2022 走看看