買這商品的人也買了...
-
$600The Java Tutorial: A Short Course on the Basics, 3/e (Paperback)
-
$980$774 -
$1,029Operating System Concepts, 6/e (Windows XP Update)
-
$2,370$2,252 -
$760$600 -
$590$466 -
$600$474 -
$820$804 -
$750$638 -
$560$476 -
$850$723 -
$480$379 -
$750$593 -
$780$663 -
$490$382 -
$2,390$2,271 -
$2,370$2,252 -
$1,742Linux Device Drivers, 3/e (Paperback)
-
$590$460 -
$580$452 -
$620$527 -
$1,300$1,235 -
$2,080Understanding the Linux Kernel, 3/e (Paperback)
-
$650$507 -
$450$356
相關主題
商品描述
Have you ever been in a crunch where all conventional approaches have failed? Do you know of a product thatsolves exactly the same problem you are facing but there is no documentation on how to implement it? Are you using a third-party library for which you need to change some of the logic but you don't have the source code?
This book shows how to overcome unsurpassable problems with practical methods
such as:
Author Alex Kalinovsky acknowledges that the techniques in Covert Java are controversial, but as he says in the Introduction "...Any information or discovery can be used for good or ill. This book is for the good guys, and if you are a bad guy please stop reading right now and get a new job with the testing team."
Tricks and in-depth information presented in Covert Java can save you hours of effort. Each chapter focuses on a technique that solves a specific problem -- outlining the problem, demonstrating the solution, and then suggesting additional ideas for testing the approach
Table of Contents:
Introduction.
1. Getting Started.
2. Decompiling Classes.
Determining When to Decompile. Knowing the
Best Decompilers. Decompiling a Class. What Makes Decompiling Possible?
Potential Problems with Decompiled Code. Quick Quiz. In Brief.
3. Obfuscating Classes.
Protecting the Ideas Behind Your Code.
Obfuscation As a Protection of Intellectual Property. Transformations Performed
by Obfuscators. Knowing the Best Obfuscators. Potential Problems and Common
Solutions. Using Zelix KlassMaster to Obfuscate a Chat Application. Cracking
Obfuscated Code. Quick Quiz. In Brief.
4. Hacking Non-Public Methods and Variables of a Class.
Accessing
Packages and Protected Class Members. Accessing Private Class Members. Quick
Quiz. In Brief.
5. Replacing and Patching Application Classes.
What Do We Do When
We Have Tried Every Road but Failed? Finding the Class That Has to Be Patched. A
Sample Scenario That Requires Patching. Patching a Class to Provide New Logic.
Reconfiguring the Application to Load and Use the Patched Class. Patching Sealed
Packages. Quick Quiz. In Brief.
6. Using Effective Tracing.
Introduction to Tracing. Tracing As an
Effective Method of Learning the Software. Tracing and Logging Tools and APIs.
Tracing Dos and Donts. Quick Quiz. In Brief.
7. Manipulating Java Security.
Java Security Overview. Bypassing
Security Checks. Quick Quiz. In Brief.
8. Snooping the Runtime Environment.
The Value of Understanding
the Runtime Environment. System Properties. System Information. Memory
Information. Network Information. Accessing Environment Variables. Quick Quiz.
In Brief.
9. Cracking Code with Unorthodox Debuggers.
Understanding the Internals of Unknown Applications. Conventional Debuggers and Their Limitations. Hacking with an Omniscient Debugger. Quick Quiz. In Brief.
10. Using Profilers for Application Runtime Analysis.
Why and When
You Should Use Profiling. The Best Profilers for Java. Investigating Heap Usage
and Garbage Collection Frequency to Improve the Performance. Browsing Object
Allocation and References to Find and Fix Memory Leaks. Investigating Thread
Allocation and Synchronization. Identifying Expensive Methods to Improve
Performance. Investigating an Application at Runtime Using a Thread Dump. Quick
Quiz. In Brief.
11. Load-Testing to Find and Fix Scalability Problems.
The
Importance of Load-Testing. Load-Testing RMI-Based Servers with JUnit.
Load-Testing with JMeter. Quick Quiz. In Brief.
12. Reverse Engineering Applications.
13. Eavesdropping Techniques.
Eavesdropping Defined. Eavesdropping on HTTP. Eavesdropping on the RMI Protocol. Eavesdropping on JDBC Driver and SQL Statements. Quick Quiz. In Brief.
14. Controlling Class Loading.
JVM Internals from a Class Loading
Perspective. Writing a Custom Class Loader. Quick Quiz. In Brief.
15. Replacing and Patching Core Java Classes.
Why Bother? Patching Core Java Classes Using the Boot Class Path. Example of Patching java.lang.Integer. Quick Quiz. In Brief.
16. Intercepting Control Flow.
Control Flow Defined. Intercepting System Errors. Intercepting System Streams. Intercepting a Call to System.exit. Reacting to a JVM Shutdown Using Hooks. Intercepting Methods with a Dynamic Proxy. The Java Virtual Machine Profiler Interface. Quick Quiz. In Brief.
17. Understanding and Tweaking Bytecode.
Bytecode Fundamentals. Viewing Class Files Using the jClassLib Bytecode Viewer. The JVM Instruction Set. Class File Format. Instrumenting and Generating Bytecode. Bytecode Tweaking Compared with AOP and Dynamic Proxies. Quick Quiz. In Brief.
18. Total Control with Native Code Patching.
Why and When to Patch Native Code. Native Code Usage in the Java Virtual Machine. Generic Approaches to Patching Native Methods. Patching Native Code on the Windows Platform. Patching Native Code on Unix Platforms. Quick Quiz. In Brief.
19. Protecting Commercial Applications from Hacking.
Setting Goals for Application Protection. Securing Data with Java Cryptography Architecture. Protecting Application Distribution from Hacking. Implementing Licensing to Unlock Application Features. Quick Quiz. In Brief.
Appendix A. Commercial Software License.
Appendix B.
Resources.
Utilities and Tools. Decompiling. Obfuscating. Tracing and Logging. Debugging. Profiling. Load-Testing. Eavesdropping. Bytecode Tweaking. Native Code Patching. Protection from Hacking.
Appendix C. Quiz Answers.
Index
商品描述(中文翻譯)
您是否曾經遇到過所有傳統方法都失敗的情況?您是否知道有一個產品可以解決您面臨的相同問題,但卻沒有任何實施文檔?您是否在使用一個第三方庫,但需要更改一些邏輯,而您卻沒有源代碼?
本書展示了如何通過實用的方法克服無法逾越的問題,例如:
- 反編譯和混淆類
- 破解非公開變數和方法
- 替換和修補應用程序類
- 使用分析器進行應用程序運行時分析
- 竊聽以促進故障排除和性能調優
- 攔截控制流和控制類加載
- 理解和調整字節碼
- 更改第三方應用程序邏輯
- 破解JVM行為
- 保護商業應用程序免受黑客攻擊
作者Alex Kalinovsky承認,《Covert Java》中的技術是有爭議的,但正如他在引言中所說的:“……任何信息或發現都可以用於善或惡。本書是為好人準備的,如果您是壞人,請立即停止閱讀並去測試團隊找一份新工作。”
《Covert Java》中提供的技巧和深入信息可以為您節省數小時的努力。每一章都專注於解決特定問題的技術——概述問題,演示解決方案,然後建議測試該方法的其他想法。
目錄:
引言
1. 開始使用
技術概述——何時以及為什麼使用每種方法。使用文件管理器提高生產力。示例應用程序功能和結構。快速測驗。簡要說明。
2. 反編譯類
確定何時反編譯。了解最佳反編譯器。反編譯一個類。什麼使反編譯成為可能?反編譯代碼的潛在問題。快速測驗。簡要說明。
3. 混淆類
保護您代碼背後的想法。混淆作為知識產權的保護。混淆器執行的轉換。了解最佳混淆器。潛在問題和常見解決方案。使用Zelix KlassMaster混淆聊天應用程序。破解混淆代碼。快速測驗。簡要說明。
4. 破解類的非公開方法和變數
訪問包和受保護的類成員。訪問私有類成員。快速測驗。簡要說明。
5. 替換和修補應用程序類
當我們嘗試了所有方法卻失敗時該怎麼辦?找到需要修補的類。一個需要修補的示例場景。修補一個類以提供新邏輯。重新配置應用程序以加載和使用修補的類。修補密封包。快速測驗。簡要說明。
6. 使用有效的追蹤
追蹤介紹。追蹤作為學習軟件的有效方法。追蹤和日誌工具及API。追蹤的注意事項。快速測驗。簡要說明。
7. 操作Java安全性
Java安全概述。繞過安全檢查。快速測驗。簡要說明。
8. 竊聽運行時環境
理解運行時環境的價值。系統屬性。系統信息。內存信息。網絡信息。訪問環境變數。快速測驗。簡要說明。
9. 使用非常規調試器破解代碼
理解未知應用程序的內部結構。傳統調試器及其局限性。使用全知調試器進行破解。快速測驗。簡要說明。
10. 使用分析器進行應用程序運行時分析
為什麼以及何時應使用分析。Java的最佳分析器。調查堆使用和垃圾回收頻率以改善性能。瀏覽對象分配和引用以查找和修復內存泄漏。調查線程分配和同步。識別昂貴的方法以改善性能。使用線程轉儲調查運行時的應用程序。快速測驗。簡要說明。
11. 負載測試以查找和修復可擴展性問題
負載測試的重要性。使用JUnit對基於RMI的服務器進行負載測試。使用JMeter進行負載測試。快速測驗。簡要說明。
12. 逆向工程應用程序
用戶界面元素和資源。破解文本。破解圖像。破解配置文件。快速測驗。簡要說明。
13. 竊聽技術
竊聽的定義。對HTTP進行竊聽。對RMI協議進行竊聽。對JDBC驅動程序和SQL語句進行竊聽。快速測驗。簡要說明。
14. 控制類加載
從類加載的角度看JVM內部。編寫自定義類加載器。快速測驗。簡要說明。
15. 替換和修補核心Java類
為什麼要這樣做?使用啟動類路徑修補核心Java類。修補java.lang.Integer的示例。快速測驗。簡要說明。
16. 攔截控制流
控制流的定義。攔截系統錯誤。攔截系統流。攔截對System.exit的調用。使用鉤子對JVM關閉做出反應。使用動態代理攔截方法。Java虛擬機分析器接口。快速測驗。簡要說明。
17. 理解和調整字節碼
字節碼基礎知識。使用jClassLib字節碼查看器查看類文件。JVM指令集。類文件格式。儀器化和生成字節碼。與AOP和動態代理相比的字節碼調整。快速測驗。簡要說明。
18. 通過本地代碼修補實現完全控制
為什麼以及何時修補本地代碼。Java虛擬機中的本地代碼使用。修補本地方法的通用方法。在Windows平台上修補本地代碼。在Unix平台上修補本地代碼。快速測驗。簡要說明。
19. 保護商業應用程序免受黑客攻擊
為應用程序保護設定目標。使用Java加密架構保護數據。保護應用程序分發免受黑客攻擊。實施授權以解鎖應用程序功能。快速測驗。簡要說明。
附錄A. 商業軟件許可
附錄B. 資源
實用工具和工具。反編譯。混淆。追蹤和日誌。調試。分析。負載測試。竊聽。字節碼調整。本地代碼修補。防止黑客攻擊。
附錄C. 測驗答案
索引