網上下載了一款商用的教育培訓類軟件,是用.Net寫的,標榜的是免費的,可是隻能試用一個月,商家很精明,用此方法推廣招攬客戶,可是公司在這一塊卻沒有預算購買,一開始就想着既然是商用軟件,安全機制作的確定很好,不會那麼容易破解,後面想了想,反正試試唄,不成功也沒有什麼損失,因而用Reflector反編譯,驚奇的發現反編譯后里面的代碼基本暴露無遺,基本沒有用什麼防反編譯的任何措施,裏面的註冊碼生成機制,驗證機制一目瞭然。算法
按裏面的算法,生成的註冊碼是能夠Decrypt的,而後就想着按其註冊碼的格式修改成正式版從新生成註冊碼,但由於不知道PrivateKey,因此此條路做罷。安全
因而就想着將反編譯後的代碼作成工程,修改註冊碼驗證機制,而後用此工程的dll覆蓋,可是發現反編譯後的工程多多少少仍是有些不能正常編譯,因而這種方案也暫時否認。flex
繼續找方案,發現了本文所講的重點-reflexil,這是用在Reflector上的一個插件,能夠直接進行反編譯,因而找到驗證代碼,增長如下兩行,直接覆蓋原有的取受權信息的代碼。插件
最終將修改後的dll覆蓋既有的dll,成功。blog