程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 代碼加密:糟糕的寫法也是一種加密

代碼加密:糟糕的寫法也是一種加密

編輯:關於C++

哎!

慘……

最近接連維護兩個很煩人的項目,我的第一想法就是重寫!可是上頭的意思是說我的想法太瘋狂。

可每次有這種情況我都感覺還是重寫劃算點……

之前的之前一個東東重寫也就一周時間,而上頭還是決定用著,對那東東很麻煩怕新寫的別人不適應 以及穩定性的擔心。而結果就沒重寫,接下來的幾個月我都被那玩意煩。哎

回正題

這兩個項目一個是C++的,一個是C#的,兩個都是關於網絡的。都是非常有各自語言的特色

C++的那個項目是所有要處理消息的函數都是統一的 void xxxx(void* pData);

然後進去就

int* pxx = (int*)pData;

 pxx= XXX(sss);

pData += sizeof int;

SH_XXX* pshxx = (SH_XXX*)pData;

Mxxxk(pshxx,xxxixx);

sss;

Send(g_Buf);//所有處理函數的最後都是這一句

寫的是行雲流水,酣暢淋漓啊。慢慢看也明白,但是人都容易馬虎的,很多時候調的時候一不小心, 就不知道跑哪兒去了。

所有函數使用同一個全局緩沖區,讀和寫是同時進行的。有可能讀了一些東西,偏移一段後進入某個 函數又退回一段距離開始寫東西。前前後後,讀讀寫寫。哎,煩啊

至於C#的那個,導出是委托,每一個東西都有一個父類。比如

Code;

DoubleCode : Code;

ThreeCode : DoubleCode;

SessionCode : TreeCode;

StreamCode : SessionCode;

而事實上上面的類,每一個都只是在父類基礎上加一個屬性而已。用的時候經常是base.xxx;經常是類 型轉來轉去的

很多類都在開線程,而且線程的執行函數是base.xxx

也即是Thread th = new Thread(new ThreadStart(base.Receive));

然後在base.Receive函數又調用子類的DealCode函數處理消息。

哎,讓人看著很不爽。經常跟的時候自己都忘了跟到哪裡去了。

因為還有很多函數都是“代理函數”,也就是僅僅調用另外一個函數而已;

比如

void Doxxx(object data)

{

     xxxx.Doxxx(data);

}

xxxx的Doxxxx(object data)

{

     yyyy.Doxxx(data);

}

yyyy.Doxxxx(object data)

{

     base.xxxx(data);

}

我就不明白為什麼要這樣寫?規范化?還是為了讓別人不容易看懂自己的代碼?

或許後者多一點吧?

那既然這樣自信就不要推給我來維護啊……

哎……

最近他們又在開動一個瘋狂的項目,很擔心最後又是我來收攤。

為什麼我就這麼慘呢?

程序員每天上十二三個小時的班是不應該的……

今天早上想到一個代碼加密的法子,那就是將代碼中所有的名稱(類名,接口名,函數名,對象名, 變量名,函數的參數變量名都不要放過)通通的瞎改。改成下面的樣子

void sekrj394329428 siweuirweiru234oodk(vdkdfnsdflk23dfkj dkf8s0fd0dsf,dsfklsdfklje sdfjffjj)

{

      dkf8s0fd0dsf.sl3n34klsfkljdsklfjl();

      sfnekr234l324j = sdfjffjj.skjl3j4klj32lkj();

     dkf8s0fd0dsf.fmnelrwejrkl234 (new skfdjls324jklsjifosjf());

     for(int simrweiro234uo324 = sdfjffjj.gklejlk23j4lk23j4();sdfjffjj.sldkjfkljkl32423kl4(simrweiro234uo324 );simrweiro234uo324 ++)

     {

           dkf8s0fd0dsf.skldfjlsdfjklwjrlw();

}

     return sdfjffjj.sdfkljsdlfjl (sfnekr234l324j );

}

准備以後有時間寫這麼一個加密的東東出來。沒想到老天故意讓我不要浪費時間似的,看一個東西時 意外發現已經有人這麼弄了……

那就是Xenocode.Fox. 他的庫就給改成這個樣子了。呵呵

不過有空我還是弄一個出來吧,好好研究下System.CodeDom;自己寫的東東用起來更有感覺,呵呵呵

而且可以更加個性化,嘿嘿

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved