AHI CTF


Saran Kaewnang


"If you want to succeed, you have to let failure be your best friend!"


#How to crack and protect vb.net language programs


VB.NET คืออะไร

Visual Basic.NET (วิชวลเบสิกดอทเน็ต) มีตัวย่อว่า VB.NET คือภาษาที่ใช้สำหรับการพัฒนาโปรแกรม เป็นอีกภาษาหนึ่งที่กลุ่มไมโครซอฟต์ได้พัฒนาขึ้นมา ซึ่งโปรแกรมมีสภาพแวดล้อมกราฟฟิคสำหรับการปฏิบัติการบนวินโดว์ โดยมีรากฐานมาจากภาษาเบสิก และทำงานบนดอทเน็ตเฟรมเวิร์ค ถูกออกแบบมาให้มีความสามารถในการการพัฒนาโปรแกรมเชิงวัตถุอย่างแท้จริง และรองรับการออกแบบด้วยยูเอ็มแอล ซึ่งเป็นภาษาที่เหมาะสำหรับการพัฒนาโปรแกรมหรือแอพพลิเคชั่น ที่ทำงานภายใต้ระบบปฏิบัติการ Windows(วินโดว์)

ตัวอย่างโปรแกรมที่เขียนด้วยภาษา VB.NET

โปรแกรมดังต่อไปนี้ เป็นโปรแกรมในการจำลองการทำระบบ Login ในรูปแบบที่ง่าย

ซึ่งถ้าหากใส่ Username กับ Password ที่ไม่ถูกต้องจะมีการแจ้งเตือนขึ้นมา

ซึ่งถ้าหากใส่ Username กับ Password ที่ถูกต้องจะมีการแสดงข้อความเข้าสู่ระบบสำเร็จ และมีการแสดงฟอร์มขึ้นมาใหม่

dnSpy

โปรแกรมที่มีชื่อว่า dnSpy ซึ่งเป็นโปรแกรมที่ไว้ใช้สำหรับการทำ Reverse engineering ซึ่งโปรแกรมดังกล่าวมีคุณสมบัติดังต่อไปนี้

  • Debug .NET and Unity assemblies
  • Edit .NET and Unity assemblies
วิธีการ Crack โปรแกรมที่เขียนด้วยภาษา VB.NET

ในช่วงนี้จะสอนเกี่ยวกับขึ้นตอนการ Crack โปรแกรมที่ไม่มีการเข้ารหัส Code ไว้ที่เขียนด้วยภาษา VB.NET ด้วย dnSpy โดยในที่นี้เราจะใช้โปรแกรมที่เราจำลองขึ้นมาในข้างต้น เราจะจำลองว่าถ้าเราไม่มี Username กับ Password เราจะสามารถผ่านหน้า Login ไปได้หรือไม่

  • ดำเนินการเปิดโปรแกรม dnSpy
  • เลือกโปรแกรมที่ต้องการจะทำการ Crack
  • เลือกภาษาเป็น Visual Basic
  • กดตรงแท็ปซ้าย ทำการเปิด Dropdown ลงมาเรื่อยๆ เพื่อหาส่วนของการทำงานเกี่ยวกับการ Login
  • เราก็จะเห็นว่ามีการตรวจสอบ Username กับ Password ซึ่งให้เท่ากับ saran.kaewnang และ 123456 ตามลำดับ ซึ่งเราก็สามารถนำค่าที่ได้มาไป Login ได้สำเร็จ
  • หรืออีก 1 วิธีโดยเราสามารถแก้ Code ดังกล่าวเพื่อทำการ ByPass หน้า Login ไปได้ โดยทำการคลิกขวาเลือก Edit Method
  • เราจะเห็นว่าสามารถแก้ไข Code ได้ ซึ่งดูจากการทำงานของ Code ดังกล่าว เมื่อมีการเข้าสู่ระบบที่สำเร็จจะมีแสดง Frm_Main ด้วยคำสั่ง "MyProject.Forms.Frm_Main.Show()"
  • ดำเนินการแก้ไข Code ให้ทำการเปิด Frm_Main โดยที่ไม่จำเป็นต้อง Login โดยลบทุกอย่างออกเหลือไว้แค่ "MyProject.Forms.Frm_Main.Show()" และกด Compile
  • หลังจากนั้นให้ทำการ Save ALL โปรแกรมที่เราได้ทำการ Crack
  • จากนั้นเราจะเห็นโปรแกรมที่เราได้ทำการ Crack มา
  • ทำการทดสอบใช้งานโปรแกรมดังกล่าว ทำการกดปุ่ม Login จะสังเกตเห็นว่าสามารถเข้าใช้งานได้เลยโดยไม่จำเป็นจะต้องมี Username และ Password