首页
社区
课程
招聘
[原创].Net 下的混淆器作用原理
发表于: 2013-3-8 14:57 3486

[原创].Net 下的混淆器作用原理

2013-3-8 14:57
3486

1.任何以 .Net Framework 架構所寫的程式
不論是 VB.NET, 還是 C#
它們都是編譯成類似 Java的中間碼(bytecode), 又稱IL(Intermediate Language)
這代表程式碼有可能被反轉回Source Code
(也是是泛 .Net 架構的程式是用 Call by Name 的方式運作)

因此在.Net 下也有類似 Java 下的混淆器
將原本程裡 class名稱, 函數名稱, 變數名稱進行編碼
以原本編譯器在編譯時所不允許的Unicode字元
例如
\u0001 ~ \u001f
\u007f ~  \u00ff

2.這代表如果我們改寫逆向的工具
在輸出 class名稱, 函數名稱, 變數名稱之前
先篩選過是不是字串的字元在這個範圍內
先用 Dictionary<string, int> 的方式
依序將這些非標準的名稱賦與一個唯一編號
這樣應該就可以用像是 X0001001f 這樣的方式去自訂出編譯器可以用的名稱

3.最後再從 IDE 裡手動去分析這些名稱的用途
再分別自訂名稱
這樣才能透過 IDE 去全部 Rename
這樣才能把山寨文化發揚光大

----
如果以上對各位有用
請送給 kx 給我, 不然相關工具在我還有實際用到的需求前, 暫不開發


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//