คำถามติดแท็ก proguard

30
จะหลีกเลี่ยงวิศวกรรมย้อนกลับของไฟล์ APK ได้อย่างไร
ฉันกำลังพัฒนาแอปประมวลผลการชำระเงินสำหรับ Android และฉันต้องการป้องกันไม่ให้แฮ็กเกอร์เข้าถึงทรัพยากรทรัพย์สินหรือซอร์สโค้ดจากไฟล์APK หากมีคนเปลี่ยนนามสกุล. apk ให้เป็น. zip พวกเขาสามารถคลายซิปและเข้าถึงทรัพยากรและทรัพย์สินทั้งหมดของแอปได้อย่างง่ายดายและใช้dex2jarและตัวถอดรหัสของ Java พวกเขายังสามารถเข้าถึงซอร์สโค้ดได้ มันง่ายมากที่จะทำวิศวกรรมย้อนกลับไฟล์ Android เอพีเค - สำหรับรายละเอียดเพิ่มเติมโปรดดูที่กองมากเกินคำถามวิศวกรรมย้อนกลับจากไฟล์ APK โครงการ ฉันใช้เครื่องมือ Proguard ที่มาพร้อมกับ Android SDK เมื่อฉันแปลงไฟล์ APK ที่สร้างโดยใช้ keystore ที่ลงนามแล้วและ Proguard ฉันจะได้รับรหัสที่สับสน อย่างไรก็ตามชื่อของส่วนประกอบ Android ยังคงไม่เปลี่ยนแปลงและบางรหัสเช่นรหัสคีย์ที่ใช้ในแอพยังคงไม่เปลี่ยนแปลง ตามเอกสารของ Proguard เครื่องมือไม่สามารถทำให้ส่วนประกอบสับสนที่กล่าวถึงในไฟล์มานิเฟสต์ ตอนนี้คำถามของฉันคือ: ฉันจะป้องกันวิศวกรรมย้อนกลับของ APK Android ได้อย่างสมบูรณ์ได้อย่างไร เป็นไปได้ไหม ฉันจะปกป้องทรัพยากรทรัพย์สินและซอร์สโค้ดทั้งหมดของแอปเพื่อให้แฮกเกอร์ไม่สามารถแฮ็คไฟล์ APK ในทางใดทางหนึ่งได้อย่างไร มีวิธีใดที่จะทำให้การแฮ็กยากขึ้นหรือเป็นไปไม่ได้ ฉันสามารถทำอะไรได้อีกเพื่อปกป้องซอร์สโค้ดในไฟล์ APK ของฉัน

26
จะลบการบันทึกการดีบักทั้งหมดก่อนที่จะสร้างเวอร์ชันที่วางจำหน่ายของแอพ Android ได้อย่างไร
ตาม Google ฉันจะต้อง " ปิดการใช้งานการโทรไปยังวิธีการบันทึกในรหัสที่มา " ก่อนที่จะเผยแพร่แอพ Android ของฉันไปยัง Google Play แยกจากส่วนที่ 3 ของรายการตรวจสอบสิ่งพิมพ์ : ตรวจสอบให้แน่ใจว่าคุณปิดใช้งานการบันทึกและปิดใช้งานตัวเลือกการแก้ไขข้อบกพร่องก่อนที่คุณจะสร้างแอปพลิเคชันของคุณสำหรับการเปิดตัว คุณสามารถปิดใช้งานการบันทึกได้โดยลบการเรียกไปยังวิธีการบันทึกในไฟล์ต้นฉบับของคุณ โครงการโอเพ่นซอร์สของฉันมีขนาดใหญ่และเป็นเรื่องยากที่จะทำด้วยตนเองทุกครั้งที่ฉันปล่อย นอกจากนี้การลบบรรทัดบันทึกอาจมีความยุ่งยากเช่น: if(condition) Log.d(LOG_TAG, "Something"); data.load(); data.show(); หากฉันแสดงความคิดเห็นในบรรทัด Log เงื่อนไขจะมีผลกับบรรทัดถัดไปและโอกาสในการโหลด () จะไม่ถูกเรียก สถานการณ์เช่นนี้หายากพอที่ฉันสามารถตัดสินใจได้หรือไม่ ดังนั้นมีวิธีระดับซอร์สโค้ดที่ดีกว่าในการทำเช่นนั้น? หรือบางทีไวยากรณ์ ProGuard ที่ชาญฉลาดเพื่อลบบรรทัดบันทึกทั้งหมดอย่างมีประสิทธิภาพ แต่ปลอดภัย

14
วิธีปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บและปกป้องคีย์ API ส่วนตัวในแอปพลิเคชัน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา นักพัฒนาแอพส่วนใหญ่จะรวมห้องสมุดบุคคลที่สามเข้ากับแอพของพวกเขา ถ้าเป็นการเข้าถึงบริการเช่น Dropbox หรือ YouTube หรือการบันทึกการขัดข้อง จำนวนไลบรารีและบริการของบุคคลที่สามกำลังส่าย ไลบรารี่และบริการส่วนใหญ่นั้นได้รับการบูรณาการโดยการรับรองความถูกต้องกับบริการส่วนใหญ่แล้วเกิดขึ้นผ่านคีย์ API เพื่อวัตถุประสงค์ด้านความปลอดภัยบริการมักจะสร้างสาธารณะและเอกชนมักจะเรียกว่าเป็นความลับที่สำคัญ น่าเสียดายที่เพื่อเชื่อมต่อกับบริการคีย์ส่วนตัวนี้จะต้องใช้ในการตรวจสอบและด้วยเหตุนี้อาจเป็นส่วนหนึ่งของแอปพลิเคชัน ไม่จำเป็นต้องพูดเลยว่าสิ่งนี้กำลังเผชิญกับปัญหาด้านความปลอดภัยอันยิ่งใหญ่ คีย์ API สาธารณะและส่วนตัวสามารถดึงมาจาก APK ในเวลาไม่กี่นาทีและสามารถเป็นอัตโนมัติได้อย่างง่ายดาย สมมติว่าฉันมีบางสิ่งที่คล้ายกันนี้ฉันจะป้องกันรหัสลับได้อย่างไร: public class DropboxService { private final static String APP_KEY = "jk433g34hg3"; private final static String APP_SECRET = "987dwdqwdqw90"; private final static AccessType ACCESS_TYPE = AccessType.DROPBOX; …

8
Android Studio จะบันทึกไฟล์การจับคู่ ProGuard ที่ไหน
ใน Android Studio ไฟล์การทำแผนที่ ProGuard สร้างขึ้นที่ไหนหลังจากรวบรวม APK ที่ลงชื่อแล้ว? ฉันไม่แน่ใจว่ามันใช้งานไม่ได้หรือถ้าฉันลืมเส้นทางไฟล์และการค้นหา Google / Stack Overflow ภาคบังคับของฉันไม่ได้ตอบคำถามนี้

9
proguard hell - ไม่พบคลาสอ้างอิง
ดังนั้นฉัน พยายามที่จะออกซอฟต์แวร์บางตัว แต่ Proguard ทำให้ฉันปวดหัว เมื่อฉันพยายามส่งออกโดยใช้ proguard ฉันได้รับคำเตือนมากมายเช่น "ไม่พบคลาสที่อ้างอิง" ตัวอย่างเช่น: [2011-08-07 17:44:37 - GAME] Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent [2011-08-07 17:44:37 - GAME] Warning: there were 52 unresolved references to classes or interfaces. [2011-08-07 17:44:37 - GAME] You may need to specify additional library jars (using '-libraryjars'), [2011-08-07 …
125 android  proguard 

3
NameNotFoundException webview
ฉันได้รับข้อผิดพลาดจาก Crashlytics ซึ่งบ่งชี้ว่าอุปกรณ์บางอย่างไม่มี com.google.android.webview มันเป็นไปได้อย่างไร? java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.app/com.myapp.ReaderActivity}: android.view.InflateException: Binary XML file line #29: Error inflating class com.myapp.MyWebView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: android.view.InflateException: Binary XML file line …

5
การเปิดใช้งาน ProGuard ใน Eclipse สำหรับ Android
เอกสารใหม่เกี่ยวกับProGuard สำหรับ Androidระบุว่าให้เพิ่มบรรทัดลงในไฟล์ default.properties ในโฮมไดเร็กทอรีของโปรเจ็กต์ อย่างไรก็ตามในการเปิดไฟล์นี้ฉันอ่านที่ด้านบน: # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! ฉันพลาดอะไรไปรึเปล่า? นอกจากนี้ยังมีวิธีเปิดใช้งาน ProGuard สำหรับรุ่นที่ใช้งานจริงจาก Eclipse เท่านั้น (เช่นเมื่อส่งออกผลิตภัณฑ์สำเร็จรูป)

4
จะเก็บ / แยกเส้นทางแพ็กเกจเฉพาะเมื่อใช้ proguard ได้อย่างไร?
ฉันต้องการแยกเส้นทางไฟล์บางส่วนจาก ProGuard ตัวอย่างcom.myapp.customcomponents ฉันจะทำเช่นนี้ได้อย่างไร? ฉันเกลียดที่จะวางแฟล็ก -keep สำหรับไฟล์คอมโพเนนต์ที่กำหนดเองทุกไฟล์ที่ฉันมีในไดเร็กทอรีนี้ ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ไม่ได้ผล: -keep public class com.myapp.customcomponents.*
110 android  proguard 

6
วิธีใช้ ProGuard ใน Android Studio
นี่เป็นโครงการแรกของฉันใน Android Studio และรหัสของแอปของฉันไม่ได้ถูกทำให้สับสน ฉันใช้การกำหนดค่านี้ในไฟล์ build.gradle: ฉันใช้ Build> Generate Signed APK ... ด้วยการเลือก Run Proguard และเมื่อฉันได้ทดสอบโดยใช้ Apk_OneClick.v4.2 รหัสของฉันก็อ่านง่ายอย่างสมบูรณ์: ได้โปรดช่วยฉันด้วย :(

1
Progruard และ R8 ไม่รองรับ - Android Studio 3.6
ฉันได้รับคำเตือนที่ไม่สอดคล้องกับ Proguard และ R8 หลังจากอัพเกรด Android Studio เป็น 3.6 หมายความว่าเราไม่ควรใช้ obfuscation ในโครงการของเราหรือมีตัวเลือกอื่นที่เทียบเท่าที่เราควรพิจารณาในขณะที่สร้างในโหมดการปล่อย ตัวเลือก 'android.enableR8' เลิกใช้แล้วและไม่ควรใช้อีกต่อไป มันจะถูกลบในปลั๊กอิน Android Gradle รุ่นอนาคตและจะไม่อนุญาตให้คุณปิดการใช้งาน R8 อีกต่อไป โมดูลที่ได้รับผลกระทบ: ฯลฯ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.