Asked Oct 22nd, 2018 3:41 AM 6096 2 1
  • 6096 2 1
+1

Decompile C# exe file

Share
  • 6096 2 1

Như tiêu đề, dạo này em có nghiên cứu Decompile C# exe file bằng các công cụ như JustDecompile, dotPeek, ILSpy...Tuy nhiên những tool này chỉ decompile được các file exe chưa được bảo vệ. Vây thì những file mà được bảo vệ thì người ta sẽ dùng cách gì để Decompile được mọi người nhỉ. Mặc dù em biết decompile là không tốt, nhưng sự tò mò của tuổi trẻ đã thôi thúc em đi hỏi mọi người. Ai biết thì chia sẻ cho em với ạ Thanks mọi người, chúc sức khỏe

1 ANSWERS


Answered Oct 22nd, 2018 3:55 AM
Accepted
+14
  • Đối với các file đã được bảo vệ thì trên thị trường có rất nhiều các Obfuscator và Packer khác nhau với nhiều kĩ thuật khác nhau: ctor, anti-reverse, anti-debug, unicode string renaming, junk code, dynamic code loading .... Bạn có thể tham khảo thêm ở 1 số paper VD như: https://www.welivesecurity.com/wp-content/uploads/2015/09/Hartung-VB20151.pdf hoặc Google với từ khoá "Dot Net obfuscator packer technique"
  • Sau khi đã biết các Obfuscator và Packer dùng kĩ thuật gì rồi thì có thể tìm cách đảo ngược (reverse engineering) hoặc các phương pháp phân tích (static/dynamic analysis, memory dumping, breakpoint tại các điểm mà packer chạy load/unload encrypt/decrypt code, ...) bằng tay hoặc bằng tools.
  • Tools hay dùng nhất (hỗ trợ nhiều packer khác nhau) mình được biết là: https://github.com/0xd4d/de4dot
  • Đối với các Packer khác nhau có thể có tool riêng VD: https://github.com/maddnias/ConfuserDeobfuscator
  • Cũng có thể unpack bằng tay như ở VD dưới đây: https://blog.talosintelligence.com/2017/12/recam-redux-deconfusing-confuserex.html
Share
Avatar Chickencode @anonymousvn
Oct 22nd, 2018 7:16 AM

Em cám ơn ạ

0
| Reply
Share
Mar 10th, 2019 5:44 AM

Với những phần mềm obfuscator với việc chống debug thì làm sao có thể dịch ngược code lại đc? mong bạn hướng dẫn. cám ơn

0
| Reply
Share
Mar 11th, 2019 1:36 AM

@vongcohay về cơ bản các bước vẫn là:

  • Detect xem họ sử dụng obfuscator nào
  • Xem obfuscator sử dụng kĩ thuật gì, đối với các kỹ thuật hầu hết sẽ có cách đối phó tương ứng. VD: packer có thể mã hoá code, khi nào chạy thì mới bắt đầu giải mã. Ta cần breakpoint tại thời điểm code vừa được giải mã sẽ có được source code gốc, v.v.. Bạn đọc thử link mình share ở trên để hiểu thêm nhé.
0
| Reply
Share
Avatar Tuan Nguyen @tuanntvcu94
Oct 16th, 2020 2:03 AM
Viblo
Let's register a Viblo Account to get more interesting posts.