วิธีถอดรหัสและธีม APK ของ Android



ตอนนี้กด 'แทนที่ทั้งหมด' แล้วมันจะเปลี่ยน @android: color / white ทั้งหมดให้ใช้ background_holo_dark แทน ตอนนี้เลื่อนดู. xml ทั้งหมดต่อไปโดยค้นหา android: background strings ที่ใช้ค่า hex (#fffffff) หรืออะไรก็ได้ที่ไม่ใช่สิ่งที่เราเพิ่งแทนที่ด้วย สำหรับสิ่งที่คุณพบให้เปลี่ยนสตริงเพื่อใช้สตริงใหม่ (abs__background_holo_dark)

ดังนั้นเราจึงเปลี่ยนพื้นหลังตอนนี้เรากำลังจะเปลี่ยนสีข้อความ ทำตามขั้นตอนเดิมที่เราเพิ่งทำไป แต่คราวนี้ให้ทำ CTRL + F สำหรับ“ android: textColor” คุณจะพบประมาณ 166 บรรทัด



คุณจะเห็นสิ่งต่างๆเช่น“ android: textColor =” # ffbbbbbb” เป็นต้นดังนั้นให้มองเข้าไปใน Colors.xml อีกครั้งและเราต้องหาบรรทัดที่จะแทนที่สำหรับสีข้อความ



คุณสามารถดู android: textColor =” # ffbbbbbb”,“ #ffffffff”,“ # ff717171” และ“ #ffcccccc” ในภาพหน้าจอและในผลการค้นหาของคุณใน Note ++ เปิด Colors.xml ของคุณอีกครั้งตอนนี้เพื่อค้นหาบรรทัดที่เราต้องการใช้สำหรับสีข้อความ



ดังนั้นกลับไปที่. xml แรกและทำ CTRL + H สำหรับกล่องโต้ตอบแทนที่อีกครั้ง ตอนนี้คัดลอกวางสตริง“ android: textColor =” # ffbbbbbb ที่ด้านบนและด้านล่างและเปลี่ยนบรรทัดล่างสุดเป็น“ android: textColor =” @ color / text”

ค้นหาอีกครั้งในบรรทัด android: textColor และเปลี่ยนอะไรก็ได้ที่มีค่าฐานสิบหกในสตริง ในที่สุดเมื่อคุณไปที่ไฟล์ styles.xml คุณต้องการลบผกผันออกจากสองสามบรรทัดเริ่มต้นที่บรรทัด 260 และลงไปอีกสองสามบรรทัด ดังนั้นลบ 'ผกผัน' ออกจากสตริงเหล่านั้น

ถัดไปคุณจะเห็นค่าฐานสิบหกรอบ ๆ ในบรรทัด 527, 536, 573, 579, 585, 601 และอื่น ๆ อีกสองสามค่า แทนที่จาก (#ffffffff) เป็น (@ color / text)



กด CTRL + F เพื่อค้นหาใน Notepad ++ สำหรับ cacheColorHint , ตัวแบ่ง , @ * android: สี / และ ผกผัน .

cacheColorHint เป็นพื้นหลังแบบเลื่อนดังนั้นเราต้องตรวจสอบให้แน่ใจว่าพวกเขาใช้สีพื้นหลังของเรา วงเวียนอธิบายได้ในตัวเองและเราสามารถเปลี่ยนค่าฐานสิบหกได้หากต้องการ สิ่งเดียวคือห้ามแตะต้องสิ่งที่ชี้ไปที่ @drawable โดยทั่วไปรูปภาพเหล่านี้จะถูกจัดเก็บเป็นไฟล์. png ที่อื่นในโฟลเดอร์. apk

เมื่อคุณค้นหา“ ผกผัน” มันจะแสดงการอ้างอิงถึง textAppearanceInverse คุณต้องดับเบิลคลิกที่แต่ละรายการและลบ Inverse ออกจากสตริงเหล่านั้น

สุดท้ายการค้นหา @ * android: color / จะตรวจสอบอีกครั้งว่าเราพลาดการแก้ไขกรอบใด ๆ หากคุณพบสิ่งที่ระบุว่า“ android: popupBackground”> @ * android: color / white” คุณต้องเปลี่ยนเป็น“ android: popupBackground”> @ color / abs__background_holo_dark” ซึ่งรวมถึงบรรทัด 911 ซึ่งอาจทำให้สับสนได้เนื่องจากชี้ไปที่ android: color / black อยู่แล้ว

ต่อไปเราจะเปิด res / values ​​/ colors.xml และเปลี่ยนให้มีลักษณะดังนี้:

res / values ​​/ styles.xml ถัดไปและเลื่อนลงไปที่บรรทัด 328 เปลี่ยนเป็นดังนี้:

() ควรเปลี่ยนเป็น ()

ทำเช่นเดียวกันสำหรับบรรทัด 479 โดยเปลี่ยน ' เบา' ถึง ' ดำ” .

ตอนนี้ไปที่ res / values-v11 / styles.xml แล้วลบ ' เบา' ที่กล่าวว่า“ Holo.Light” .

ถัดไปคุณจะเปิด res / values-v14 / styles ทันทีซึ่งมีสตริงจำนวนมาก ใน 46 บรรทัดแรกคุณต้องการลบ ' เบา' และ“ ผกผัน” การอ้างอิงแล้วเปลี่ยนผู้ปกครองในบรรทัดที่ 53 และ 54 เป็น“ @ * android: style / Theme.Holo“

ในบรรทัด 69 ทางด้านขวาของพาเรนต์ให้ลบ Light ออกจากพาเรนต์ @ * android: style / Theme.Holo.Light.Dialog

งานเยอะขนาดนี้เลยใช่ไหม? บางทีจากนี้ไปคุณจะชื่นชมธีมและสกินของแอปมากขึ้น!

ต่อไปเราจะเข้าสู่ ความละเอียด / สี โฟลเดอร์ มีไฟล์ข้อความบางไฟล์ที่ชี้เป็นสีดำ เปิด res / colors / action_mode_item_text_color_state_list.xml

นั่นคือลักษณะของหุ้น ด้านล่างนี้คือวิธีที่คุณต้องทำ

คุณต้องทำการเปลี่ยนแปลงชื่อเหล่านั้นกับไฟล์ xml ต่อไปนี้ภายในโฟลเดอร์ / res / colors: Bottom_button.xml, Button_update.xml, Filelist_text_name.xml, Filelist_text_small.xml, Link_button.xml, Local_filelist_text_name.xml, Local_filelist_text_colorbott_xt_colorbott_xt xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml

เมื่อคุณทำเสร็จแล้วให้เปิด / res / drawable และมี xml ที่ควบคุมสีพื้นหลัง ดังนั้นผ่านพวกเขาและทำให้พวกเขามีลักษณะดังนี้:

ใช้การเปลี่ยนแปลงเดียวกันกับไฟล์ drawable.xml อื่น ๆ ทั้งหมด

ตอนนี้เปิด test.apk แล้วกด CTRL + คลิกซ้ายเพื่อไฮไลต์ smali และ AndroidManifest จากนั้นคลิกขวาและ“ แก้ไขด้วย Notepad ++” อีกครั้ง ยอมรับไฟล์ smali ทั้งหมด 1999 ไฟล์ เมื่อโหลดให้ทำการ CTRL + F ค้นหา -0x100 (สีดำ)

คุณจะได้รับ Hit ประมาณ 8 ครั้งและรายการที่คุณต้องการคือ smali / com / dropbox / android / activity / TextEditActivity.smali ในบรรทัด 599 ดับเบิลคลิกที่บรรทัดนั้น

บรรทัด 599 มี -0x100 อยู่ในนั้นและบรรทัด 601 มี“ SetTextColor” นอกจากนี้ยังมีตัวแปรที่ตรงกับบรรทัด 599 ดังนั้นเพื่ออธิบายสั้น ๆ ว่า -0x100, -0x1000000 และแม้แต่ 0x0 สีดำหมายถึง -0x1000000 ก็เป็นสีดำเช่นกันและแม้แต่ 0x0 เปลี่ยนบรรทัด 599 โดยลบ 0 สองตัวออกจาก 100 แล้วลบ / high16 ออกดังนี้:

ต่อไปเราจะค้นหา @ * android: style แต่เป็น smali xml จะมี '0' พิเศษหลัง x แต่ใน smali เราไม่ได้ใช้ ต้องเป็น“ 0x103004f” แทน“ 0x0103004f

ทำการค้นหาใน Notepad ++ สำหรับ @ * android: style / ซึ่งมี 0x103

Hit ที่สองคือ 'const v7, 0x1030073' ค้นหาใน public.xml ของคุณจาก framework-res.apk อีกครั้ง คุณจะเห็นว่าเป็นรหัสสำหรับ“ Theme.Holo.Light.Dialog” คุณจะต้องเปลี่ยนเป็นรหัสสาธารณะของสไตล์ธีมตรงข้าม

เนื่องจากอันนี้คือ Theme.Holo.Light.Dialog คุณจึงต้องการทำให้เป็น Theme.Holo.Dialog Theme.Holo.Dialog มี id เป็น“ 0x103006f” ซึ่งจะเปลี่ยนกล่องโต้ตอบป๊อปอัปเพื่อใช้ธีมที่ใช้ Holo ที่เข้มขึ้นแทนที่จะเป็นธีมที่ใช้ Holo.Light

ตัวต่อไปที่เราต้องเปลี่ยนคือ“ 0x103006e” ซึ่งเป็น Theme.Holo.Light ดังนั้นไปข้างหน้าและทำให้เป็นรูปแบบธีมที่ตรงกันข้าม ใน public.xml ของคุณจาก framework-res.apk คุณจะเห็นรหัสสำหรับ Theme.Holo คือ 0x0103006b ดังนั้นเรามาเปลี่ยนบรรทัดให้มีลักษณะดังนี้:

มีอีกเพียง 2 อย่างที่ต้องดำเนินการ รายการต่อไปคือ“ 0x103000c” ซึ่งมีไว้สำหรับ Theme.Light ใน public.xml สิ่งที่ตรงกันข้ามคือ Theme.Black ไม่ใช่ ThemeHolo ดังนั้นใน public.xml คุณจะเห็นรหัสสำหรับ Theme.Black คือ“ 0x01030008” - ให้เปลี่ยนเป็นดังนี้:

ในแอปอื่น ๆ ยังมีสิ่งอื่น ๆ ให้แก้ไขและเปลี่ยนแปลงและด้วยการฝึกฝนที่เพียงพอคุณจะสามารถจัดธีมใหม่ได้เกือบทุกอย่าง แต่สำหรับตอนนี้เราได้ทำโค้ดบิตทั้งหมดเรียบร้อยแล้ว ( ในที่สุด!) .

ตอนนี้คุณสามารถเปิดสคริปต์จาก Apk Multi Tool แล้วกด 12 เพื่อรวบรวมแอป หากข้อผิดพลาดปรากฏขึ้นคุณสามารถลองดูในบันทึกข้อผิดพลาดเพื่อหาสิ่งที่ผิดพลาด แต่ส่วนใหญ่แล้วคุณจะพิมพ์ผิดหรือผิดพลาดอื่น ๆ ในระหว่างการแก้ไขโค้ด

เมื่อการสร้างเสร็จสมบูรณ์กด 2 และ 13 เพื่อลงนามแอปอีกครั้ง

แอพหุ้นมีโฟลเดอร์ชื่อ 'เทมเพลต' - คุณต้องลากไปยัง apk ที่ไม่ได้ลงชื่อโดยใช้ 7zip คัดลอก unsigned.apk ลงในโฟลเดอร์“ place-apk-here-for-sign” ภายใน Apk Multi Tool ตอนนี้กด 18 ในสคริปต์เทอร์มินัลเพื่อลงชื่อแอปในโฟลเดอร์นั้น เมื่อเสร็จแล้วสคริปต์จะออกเองโดยอัตโนมัติ ตอนนี้คุณสามารถโหลด. apk ลงในอุปกรณ์ของคุณได้แล้ว!

อ่าน 6 นาที