สร้างความสับสนให้กับแอปพลิเคชันที่สร้างขึ้นโดยใช้ Dotfuscator

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สรุป

เนื่องจากโปรแกรมประยุกต์ที่ยึดตาม .NET Framework ถูกสร้างขึ้นในสิ่งที่เรียกว่าภาษากลางทั่วไป จึงสามารถอ่านได้ในฟอร์มที่ใกล้เคียงกับซอร์สโค้ดต้นฉบับโดยใช้เครื่องมือถอดแยกชิ้นส่วนและสิ่งที่คล้ายกัน ส่วนนี้อธิบายวิธีการทําให้งวย Dotfuscator ซึ่งเป็นตัวสร้างความสับสนที่มาพร้อมกับ Visual Studio เพื่อทําให้ชื่อคลาสและเมธอดสับสนเป็นรูปแบบที่ไม่สามารถอ่านได้ง่าย

เรากําลังพูดถึงที่นี่โดยใช้ Visual Studio 2010 แต่คุณสามารถใช้ Dotfuscator ในปี 2005 และ 2008 ได้เช่นกัน

Dotfuscator を使用して作成したアプリケーションを難読化する

สภาพแวดล้อมการทํางาน

รุ่น Visual Studio ที่สนับสนุน

  • 2005
  • 2008
  • 2010

ตรวจสอบเวอร์ชัน Visual Studio

  • 2005
  • 2008
  • 2010

สาร

เกี่ยวกับดอทฟัสเซเตอร์

Dotfuscator เป็นเครื่องมือที่ทําให้สับสนที่ทําให้ซอร์สโค้ดอ่านยากเมื่อถอดประกอบในแอปพลิเคชันที่เขียนด้วย. NET Framework Dotfuscator มาพร้อมกับ Visual Studio ฟรีและมีค่าธรรมเนียม

รุ่นฟรีจะไม่พร้อมใช้งานเว้นแต่คุณลักษณะหลายอย่างของบริษัทจะถูกจํากัด หรือ Visual Studio เริ่มทํางาน แต่ทุกคนสามารถใช้งานได้ตราบใดที่มีการติดตั้ง Visual Studio ไว้ เวอร์ชันที่ต้องชําระเงินมีคุณสมบัติการทําให้งวยที่ทรงพลังมากมายที่ไม่พบในเวอร์ชันฟรี แต่มีให้ในราคาที่ยากสําหรับประชาชนทั่วไปที่จะจ่ายได้

Dotfuscator มีคุณสมบัติราคาและรุ่นที่แตกต่างกันขึ้นอยู่กับรุ่นดังนั้นโปรดดูหน้าแรกต่อไปนี้สําหรับรายละเอียด

ขั้นตอนการทําให้งวย

難読化していないアプリケーションの逆アセンブル結果

ผมกล่าวถึงก่อนหน้านี้ว่าโปรแกรมที่สร้างขึ้นด้วย.NET Framework สามารถถอดแยกชิ้นส่วนและอ่านได้อย่างง่ายดายรหัสต้นฉบับ แต่สถานการณ์ที่เกิดขึ้นจริงคือว่าถ้าคุณถอดแยกชิ้นส่วนไฟล์ exe ตามที่แสดงในรูปด้านขวาคุณเกือบจะสามารถทําซ้ํารหัสต้นฉบับเช่น namespace, ชื่อชั้น, ชื่อวิธีการ, ฯลฯ

อธิบายขั้นตอนเพื่อทําให้ชื่อเหล่านี้สับสนและสับสน

Dotfuscator Software Services

การสร้างโปรแกรมประยุกต์ใน Visual Studio และการสร้างแฟ้ม exe เหมือนกับวิธีปกติในการสร้าง

หลังจากที่คุณสร้าง และสร้างแฟ้ม exe เลือกเครื่องมือจากเมนู Visual Studio แล้วเลือกบริการซอฟต์แวร์ Dotfuscator

使用許諾契約書

เมื่อคุณเริ่มต้นเป็นครั้งแรกกล่องโต้ตอบ "ข้อตกลงใบอนุญาต" จะปรากฏขึ้นตามที่แสดงในรูปด้านขวาดังนั้นอ่านเนื้อหาอย่างละเอียดตรวจสอบ "ใช่ฉันยอมรับข้อตกลงใบอนุญาต" แล้วคลิกปุ่ม "ตกลง"

Dotfuscator Software Services

บริการซอฟต์แวร์ Dotfuscator เริ่มต้นขึ้น

入力アセンブリの追加

exe (หรือไฟล์ dll) ที่จะสับสนไม่จําเป็นต้องมาจากโครงการที่เปิดอยู่ในขณะนี้

เลือก ชุดประกอบการป้อนข้อมูล จากต้นไม้ทางด้านซ้าย แล้วคลิก ชุดประกอบการป้อนข้อมูล ทางด้านขวาเพื่อคลิกปุ่ม ...

難読化する exe ファイル

เลือกไฟล์ exe ที่คุณต้องการทําให้งวย

追加したアセンブリ

ไฟล์ exe ที่เลือกจะถูกเพิ่มลงในรายการ หากคุณต้องการทําให้หลายไฟล์สับสนให้คลิกปุ่ม "..." หลังจากบรรทัดที่สองเพื่อเพิ่มไฟล์เหล่านั้น

プロジェクトのビルド

เมื่อคุณเลือก exe ที่คุณต้องการทําให้งวยแล้ว ให้คลิกที่ สร้างโครงการ ปุ่มจากแถบเครื่องมือ

プロジェクトの保存

หากมีการเปลี่ยนแปลงใด ๆ กับโครงการกล่องโต้ตอบการยืนยันการบันทึกโครงการจะปรากฏขึ้นดังนั้นคลิก" ใช่" เพื่อบันทึก

プロジェクトの保存場所指定

โครงการนี้เรียกว่า ". ไฟล์ xml" ไฟล์ exe ที่สับสนจะถูกบันทึกไว้ในตําแหน่งเดียวกันด้วยดังนั้นให้บันทึกไฟล์.xmlไปยังโฟลเดอร์ใด ๆ

ビルド

การสร้างจะเริ่มต้นและรอจนกว่าจะเสร็จสมบูรณ์ โปรดทราบว่ายิ่งโปรแกรมมีขนาดใหญ่เท่าใดก็ยิ่งใช้เวลาในการสร้างนานขึ้นเท่านั้น หากดูเหมือนว่ารูปทางด้านขวาการสร้างจะเสร็จสมบูรณ์

ช่องข้อความจะแสดงผลลัพธ์ง่ายๆ เช่น ความคืบหน้าของบิลด์และความสับสนที่เกิดขึ้น

難読化結果

หากคุณเลือก "ผลลัพธ์" จากต้นไม้ทางด้านซ้าย คุณจะเห็นรายละเอียดว่าชื่อคลาสและเมธอดเปลี่ยนไปอย่างไร

ด้านล่างชื่อคลาสและวิธีการมีไอคอน Dotfuscator และชื่อเช่น "a" หรือ "b" ซึ่งเป็นชื่อที่สับสน ด้วยการเปลี่ยนชื่อคลาสหรือชื่อเมธอดเป็นชื่อที่ไม่มีความหมายเช่นนี้คุณสามารถทําให้เนื้อหาของซอร์สโค้ดอ่านยากแม้ว่าจะถอดประกอบแล้วก็ตาม

難読化したアセンブリ

ไฟล์ exe Obfuscated ถูกสร้างขึ้นในโฟลเดอร์ของไฟล์.xmlที่บันทึกไว้ในบันทึกโครงการที่เรียกว่า "Dotfuscated" และถูกสร้างขึ้นในนั้น นอกจากไฟล์ exe แล้วยังมีการสร้างไฟล์ "Map .xml" แต่นี่เป็นผลมาจากการทําให้งวยและไม่ควรใช้

難読化したアセンブリの実行時エラー

exes Obfuscated สามารถเรียกใช้และใช้ตามที่เป็นอยู่ได้ อย่างไรก็ตามมีหลายกรณีที่ไม่สามารถเริ่มต้นได้เนื่องจากข้อผิดพลาดที่ไม่รู้จักดังที่แสดงในรูปด้านขวา

คราวนี้ฉันเขียนแอปพลิเคชันใน WPF แต่เนื่องจากไฟล์ XAML ของหน้าต่างแรกที่จะแสดงถูกระบุเป็นสตริงการเปลี่ยนชื่อเนื่องจากความสับสนจะทําให้การอ้างอิงสูญหายส่งผลให้เกิดข้อผิดพลาด

แอปพลิเคชัน Windows Form อ้างอิงถึง จากคลาสโดยตรง เพื่อให้สามารถทํางานได้โดยไม่มีข้อผิดพลาดแม้ว่าจะสับสนก็ตาม อย่างไรก็ตามหากคุณระบุชื่อคลาสประเภท enum ฯลฯ ตามชื่อคุณต้องระวังเพราะมีความเป็นไปได้ที่ข้อผิดพลาดเดียวกันจะเกิดขึ้น

難読化の除外

หากคุณไม่ต้องการทําให้ชั้นเรียนหรืออะไรบางอย่างสับสน ให้เลือก เปลี่ยนชื่อ จากต้นไม้ทางด้านซ้ายของ Dotfuscator แล้วเลือก ยกเว้นจากแท็บตรงกลาง

เนมสเปซชื่อคลาส ฯลฯ แต่ละรายการจะปรากฏในรายการทางด้านขวาดังนั้นโปรดตรวจสอบรายการที่คุณไม่ต้องการทําให้งวย

ที่นี่ฉันไม่ต้องการเปลี่ยนชื่อคลาสของหน้าต่างที่จะแสดงก่อนดังนั้นฉันจึงตรวจสอบ "MainWindow"

難読化から除外されたクラス

เมื่อคุณสร้างคุณจะเห็นว่าไม่มีชื่อที่เปลี่ยนไปภายใต้ชื่อคลาสใน MainWindows (คลาสแอปถูกแปลงเป็น "a")

難読化したアセンブリの実行

เมื่อคุณเรียกใช้แฟ้ม exe obfuscated คุณจะเห็นว่า หน้าต่างจะแสดงอย่างถูกต้อง

難読化後の逆アセンブル

ถ้าคุณถอดแยกชิ้นส่วนแฟ้ม exe obfuscated คุณจะเห็นว่า ชื่อคลาสและชื่อเมธอดถูกเปลี่ยนเป็น "a" หรือ "b" อย่างถูกต้อง

แต่ที่กันไป ไลบรารี NET Framework เช่นชื่อคลาสไม่อยู่ภายใต้การเปลี่ยนชื่อเนื่องจากเป็นแอสเซมบลีที่ติดตั้งไว้แล้วบน Windows และที่อื่น

คราวนี้ฉันสับสนกับโครงการเริ่มต้นที่สร้างตามที่เป็นอยู่ดังนั้นฉันคิดว่ามีภาพที่ไม่ทําให้งวย แต่ฉันคิดว่าผลของการทําให้งวยจะชัดเจนเพราะจํานวนชั้นเรียน ฯลฯ เพิ่มขึ้นเมื่อโครงการเติบโตขึ้น

นอกจากนี้แม้ว่าเราจะรวมขั้นตอนไว้ในเวอร์ชันฟรีในครั้งนี้ แต่เวอร์ชันที่ต้องชําระเงินจะช่วยให้เกิดความสับสนที่ซับซ้อนมากขึ้นและยังป้องกันการถอดแยกชิ้นส่วนเอง อย่างไรก็ตามการทําให้งวยมีผลกระทบต่าง ๆ และอาจจะเกิดขึ้นดังนั้นเมื่อดําเนินการ obfuscating มีความจําเป็นต้องทําให้มันในขณะที่พิจารณาว่ามันจะทํางานอย่างถูกต้องจากจุดเริ่มต้นของการออกแบบ