-
-
[原创].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 給我, 不然相關工具在我還有實際用到的需求前, 暫不開發
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏记录
参与人
雪币
留言
时间
伟叔叔
为你点赞~
2024-5-31 07:15
心游尘世外
为你点赞~
2024-5-31 04:11
QinBeast
为你点赞~
2024-5-31 04:02
飘零丶
为你点赞~
2024-4-3 00:05
shinratensei
为你点赞~
2024-2-4 05:14
一笑人间万事
为你点赞~
2023-3-7 00:36
赞赏
他的文章
看原图
赞赏
雪币:
留言: