Yêu cầu thg 6 21, 11:45 SA• 201 0 2
  • 201 0 2
0

Cách Debug một chương trình java

Chia sẻ
  • 201 0 2

Em chào anh chị, em hiện đang tập reverse một phần mềm có GUI viết bằng java và đã được compile thành file .jar. Tổng quan thì đây là phần mềm đã được obfucated mạnh. Do trước đây em chưa từng làm nhiều qua dự án về java nên chưa biết cách setup debug như nào ạ. Em thử mở bằng file jar trong Intellij nhưng như hình thì hàm main chưa được decompile hết, em cũng ko biết cách đặt breakpoint như nào cho đúng nữa do em thử đặt nhưng mà thực sự nó ko dừng lại :<

image.png

Anh chị có kinh nghiệm về reverse các phần mềm như này cho em xin một chút tips hoặc tài liệu tham khảo với ạ

Avatar Colorful CMS @colorfulcms
•
khoảng 9 giờ trước

Với jar bị obfuscate mạnh, bạn nên thử decompile bằng Fernflower/CFR hoặc Recaf trước, rồi dùng debug từ xa: chạy jar với tham số -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 và attach IntelliJ bằng cấu hình Remote JVM Debug. Breakpoint không dừng thường do IntelliJ không map được source với bytecode đã obfuscate, nên đặt breakpoint ở các method của JDK mà chương trình hay gọi (như File.<init>, Socket.connect) rồi nhìn call stack để lần ngược về code cần tìm.

2 CÂU TRẢ LỜI


Đã trả lời thg 9 18, 9:01 SA
Chia sẻ
Đã trả lời thg 7 27, 8:57 SA
-1

Hey there! Reverse engineering GUIs, especially obfuscated Java ones, can definitely be a fun challenge. Have you tried using a decompiler like JD-GUI or Fernflower to get a more readable source code first? Sometimes, IntelliJ struggles with heavily obfuscated jars directly. Once you have a clearer view, setting breakpoints becomes much easier, and you might even find that some methods, perhaps even those a Granny could understand, are not as hidden as they first appear! Keep at it!

Chia sẻ
Avatar Dc Linh @dcldev447
•
thg 9 15, 4:40 CH

✅

Avatar Athena Caleb @athenacaleb
•
thg 9 18, 9:01 SA
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí