AtomineerUtils爆破過程記錄
AtomineerUtils爆破過程記錄
AtomineerUtils是國外的一款用于生成源代碼注釋的一款VS插件,官方網(wǎng)站:http://www.atomineerutils.com/products.php
通過鏈接,可以看出這款插件的功能十分強(qiáng)大,不像GhostDoc那樣,只支持C#,這款插件,支持C、C++、C++/CLI、C#、Java語言等,由此可以看出其強(qiáng)大,注釋的風(fēng)格可以靈活配置。
雖然他功能十分強(qiáng)大,但是由于是收費(fèi)的軟件,所以當(dāng)使用超過30天后,就無法再繼續(xù)適用了。雖然價(jià)格不貴,只有40美刀,但是由于時(shí)間緊急,必須立刻使用他的功能,所以沒有時(shí)間去購買license。
那么能不能試著破解他呢,或者繼續(xù)使用。說到破解,我的水平也就只能研究一下未混淆的.Net程序,如果這個(gè)插件是用C++寫的話,那么不好意思,破不了。
用Reflector試著打開,發(fā)現(xiàn)能識(shí)別,如下:
同時(shí)也可以看到這個(gè)版本號(hào)是:8.16.5174.40541。這是最新版本了。
既然是.Net的DLL,那么相對(duì)來說就好說了,至少和C++相比來說,有希望了。
既然是VS的插件,那么肯定要遵守VS的插件接口規(guī)范。(VS的插件接口不在本篇中介紹)
首先找到它的OnConnect方法:
然后從OnConnect方法入手進(jìn)行研究,最終定位到這里:
internal static bool b(bool A_0, bool A_1 = false) { bool flag = true; int num = (((DateTime.Today.Year - 2010) * 365) + DateTime.Today.DayOfYear) << 8; int num2 = 0; try { num2 = Convert.ToInt32(c(f, "0", string.Empty)); } catch { } int num3 = (num - num2) >> 8; if (num3 > 19) { if (e[0][0] == 'I') { for (int i = 0; i < e.Length; i++) { StringBuilder builder = new StringBuilder(); for (int j = 0; j < e[i].Length; j++) { builder.Append((char) (e[i][j] ^ (16 | (j % 16)))); } e[i] = builder.ToString(); } } if (num3 > 29) { flag = false; Commands.f(); if ((num3 == g) || A_1) { return false; } MessageBox.Show(e[0] + Environment.NewLine + Environment.NewLine + e[1] + Environment.NewLine + Environment.NewLine + e[2], "Atomineer Pro Documentation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { if ((num3 == g) || !A_0) { return true; } string[] strArray2 = new string[] { e[3], (30 - num3).ToString(), e[4], Environment.NewLine, Environment.NewLine, e[5] }; if (MessageBox.Show(string.Concat(strArray2), "Atomineer Pro Documentation", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes) { return true; } } k.h("t~e}xzws"); g = num3; } return flag; }
根據(jù)上面的邏輯,只要不執(zhí)行 num3 > 29的邏輯,并且返回值為true即可,可以做如下修改:
bool flag = true; ... int num3 = (num2 - num2) >> 8;
這樣,num3等于0,而且返回值為true。
那么如何修改這些代碼呢,基于Reflector的Reflexil插件,來修改IL代碼,然后另存為dll文件即可。
如下,是修改后的截圖:
這樣,整個(gè)插件就算是被破解了,可以無限期使用了。
posted on 2017-02-22 12:39 FongLuo 閱讀(551) 評(píng)論(0) 編輯 收藏 引用