程序破解

如果有您钟爱的程序,您希望试用一下,但是又没有授权文件或者加密狗,您会怎么办了?

特此声明:本文章指针对非常热爱软件的Fans,由于试用该技术导致的一切损失与本人无关,由此引起的一切法律纠纷与本人无关。

              只提供技术思路,作为技术探讨。

对于哪些主程序特别小的程序很有效,一般来说登录限制都会在Main函数做处理,跳过该限制就可以使用整个程序,很少有程序会在每个功能做限制,每个类做判断。

除非程序已经做过混淆、加密,或者里面写的乱七八糟(只不过是时间问题)

1、使用VS自带的命令行工具,输入ildasm后回车,打开il dasm的对话框,导入dll文件或exe,或者将exe、dll拖入到该窗体;

2、使用Net Reflector程序,可以查看该exe,了解其程序大致组织结构,前提是该程序没有反编译,点击该exe后右键有菜单指向main函数;

3、利用iddasm导出il中间文件,最好在原目录,注意要修改名称,如原文件为MainApp.exe,建议修改为MainAppCrack.il;

4、用户记事本打开生成的MainAppCrack.il,搜索定位到:static void  Main() cil managed

5、对照Net Reflector和MainAppCrack.il分析Main函数;

6、将限制统统删除,特别注意需要保留:

-----------------------------------------------------------------------------------------------------------------------------

    .entrypoint
    .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
    // 代码大小       474 (0x1da)
    .maxstack  4
    .locals init (
             class [AppForms]SplashForm V_1)
    IL_0000:  call       void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles()
    IL_0005:  ldc.i4.0
    IL_0006:  call       void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)
    IL_000b:  ldnull
    IL_000c:  ldftn      void  Program::Application_ThreadException(object,
                                                                                       class [System]System.Threading.ThreadExceptionEventArgs)
    IL_0012:  newobj     instance void [System]System.Threading.ThreadExceptionEventHandler::.ctor(object,
                                                                                                   native int)

    ***********************************************

    IL_01ab:  call       string [System.Windows.Forms]System.Windows.Forms.Application::get_StartupPath()
    IL_01b0:  ldstr      "\\ErrorInfo.log"
    IL_01b5:  call       string [mscorlib]System.String::Concat(string,
                                                                string)
    IL_01ba:  call       void []ErrLog::set_LogFile(string)
    IL_01bf:  newobj   instance void [AppForms]SplashForm::.ctor()
    IL_01c4:  stloc.s    V_1
    IL_01c6:  ldloc.s    V_1
    IL_01c8:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::Show()
    IL_01cd:  ldloc.s    V_1
    IL_01cf:  newobj     instance void MainForm::.ctor(class [AppForms]SplashForm)
    IL_01d4:  call       void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)
    IL_01d9:  ret

-----------------------------------------------------------------------------------------------------------------------------

     红颜色区域一般是限制判断,比如日期、加密狗、加密文件等

7、经过比对、整理后,将再次使用命令行,输入ilasm /debug /exe /quiet/output=YourApp.exe "YourIL File Path"

     回车后看到程序目录多了一个MainAppCrack.exe,如果双击可以执行,初步判断已经破解成功。

 

--------------------------------------------------------------------------------------------------------------------

再次声明:不要将该方法用于非法活动,天网恢恢疏而不漏,切记切记。

你可能感兴趣的:(程序)