2011-04-13 11 views
49

मुझे जावा पता है, और सी सी सी लेकिन कभी इसका इस्तेमाल नहीं किया। मैं वर्चुअल मशीन या असली के लिए असेंबली के किसी भी रूप को नहीं जानता।स्माली सीखने का सबसे अच्छा तरीका क्या है (और Dalvik VM opcodes का उपयोग कब/कब करें)?

सबसे अच्छा तरीका है Smali हैक करने के लिए कैसे जानने के लिए क्या है?

+1

जांच के लिए अच्छा सवाल :) – info

उत्तर

85

अद्यतन: जैसा कि मैंने कल वादा किया था, मैं सूची में कुछ और अधिक लिंक जोड़ा गया।

Ufff। चारों ओर ज्यादा दस्तावेज नहीं है! सर्वोत्तम सलाह? Decompile, और पढ़ें, और tweak, और देखें कि यह कैसे किया, और चक्र बार-बार शुरू करें। लेकिन आपने उस सलाह के लिए नहीं पूछा, है ना?

http://androidcracking.blogspot.com/search/label/smali यह सबसे अच्छा एक है:;)

अब, वहाँ वहाँ बाहर कुछ स्थानों पर एक छोटा सा lhelp कि Wil हैं। मैंने उस लड़के से एक सवाल भी पूछा और उसने बहुत जल्दी जवाब दिया, तो जाओ और देखो।

http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html बहुत व्यापक तालिका - अच्छा संदर्भ!

http://webchat.freenode.net/?channels=smali मैं इसे की कोशिश कभी नहीं, लेकिन यह baksmali लेखक (http://code.google.com/p/smali/)

http://forum.xda-developers.com/showthread.php?t=777707 अन्त की गूगल कोड पृष्ठ पर है, यह एक पोस्ट मैं कुछ समय पहले किए गए Captivate कैमरे के लिए कुछ हैक्स वर्णित करते हैं। आप में डिफ पालन कर सकते हैं के रूप में मैं प्रत्येक .diff फ़ाइल क्या कर रहा है पर एक छोटा सा टिप्पणी। अच्छी चीजें पोस्ट # 20 पर शुरू होती हैं।

http://www.slideshare.net/paller/understanding-the-dalvik-bytecode-with-the-dedexer-tool कुछ बुनियादी अवधारणाओं के साथ दिलचस्प स्लाइड शो। शुरू करने के लिए अच्छा तरीका है।

http://sites.google.com/site/haynesmathew/home/projects/dalvik-notes ठेठ .smali से भी कम स्तर। बाद में एक संदर्भ, लेकिन एक अच्छा पढ़ा।

http://jasmin.sourceforge.net/guide.html स्माली सिंटैक्स जैस्मीन पर आधारित है, इसलिए यह अच्छी अवधारणाएं देता है।

http://groups.google.com/group/apktool?pli=1 कुछ चर्चाएं पढ़ने के लायक हैं। जब आप किसी चीज़ में फंस जाते हैं तो खोजने के लिए भी एक अच्छी जगह है।

और आखिरी, लेकिन कम से कम, सबसे उपयोगी चाल मैंने उपयोग नहीं की: जावा में बहुत ही बुनियादी वर्गों और विधियों को कोड करना शुरू करें, उन्हें संकलित करें और फिर अपने कोड को बाक्समाली करें। आप जानते हैं कि यह वास्तव में क्या करता है, इसलिए इसका पालन करना बहुत आसान होगा।

गुड लक!

+0

पीएल में लेकिन हमेशा कुछ: https://github.com/gelldur/msc-thesis –

13

मुझे आश्चर्य है कि लोग प्राथमिक संदर्भ के रूप में आधिकारिक दलविक प्रारूप दस्तावेजों का उपयोग नहीं करते हैं। पुरानी रिलीज पर, डाल्विक डॉक्स एंड्रॉइड स्रोत में दल्विक/डॉक्स के तहत हैं। आप जिस विशेष फ़ाइल को देखना चाहते हैं उसे dalvik-bytecode.html कहा जाता है। कुछ विज्ञप्ति वापस बाईटकोड परिभाषा android.com डेवलपर दस्तावेज़ का हिस्सा बन गया:

dalvik-bytecode.html on source.android.com

एक अतिरिक्त सुविधा के रूप में, मैं कभी कभी मेरे निजी वेबसाइट पर इन डॉक्स दर्पण।इस मामले में:

dalvik-bytecode.html on milk.com

+0

आपने मुझे इसे हराया! :) इसके अलावा: पूर्ण एंड्रॉइड स्रोत की जांच करने के बजाय, आप केवल दल्विक गिट को पकड़ सकते हैं। गिट क्लोन गिट: //android.git.kernel.org/platform/dalvik.git – JesusFreke

+0

इस पर इतनी सारी खोजें और मैं कभी भी दल्विक गिट पेज में नहीं उतरा ... लिंक के लिए धन्यवाद! – Aleadam

+8

रुचि रखने वाले किसी भी व्यक्ति के लिए अपडेट करें: dalvik-bytecode दस्तावेज़ अब एंड्रॉइड साइट पर उपलब्ध है। http://source.android.com/tech/dalvik/dalvik-bytecode.html – JesusFreke

10

मैं कुछ जानकारी के साथ smali साइट पर विकि पृष्ठों की एक जोड़ी है:

http://code.google.com/p/smali/wiki/Registers

http://code.google.com/p/smali/wiki/TypesMethodsAndFields

और वहाँ smali कोड के उदाहरण हैं कि स्माली/बाक्समाली के लिए एकीकरण परीक्षण में प्रत्येक ऑपोड का उपयोग करें:

smali integration tests

+0

मुझे यह देखकर खुशी हो रही है कि अगली बार जब मैं कुछ विधि में फंस गया हूं तो आप यहां SO में भी हैं :) – Aleadam

संबंधित मुद्दे