如果有您钟爱的程序,您希望试用一下,但是又没有授权文件或者加密狗,您会怎么办了?
特此声明:本文章指针对非常热爱软件的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,如果双击可以执行,初步判断已经破解成功。
--------------------------------------------------------------------------------------------------------------------
再次声明:不要将该方法用于非法活动,天网恢恢疏而不漏,切记切记。