ตัวเลือกของบรรณาธิการ:

การโฆษณา

บ้าน - บริการ
บน Android เมื่อติดตั้งแอปพลิเคชันและเกม จะมีข้อความปรากฏขึ้นว่าการติดตั้งจากแหล่งที่ไม่รู้จักถูกบล็อกบนอุปกรณ์ Baidu Root (เวอร์ชันรัสเซีย) แอปพลิเคชันประกอบด้วยโค้ดเพื่อหลีกเลี่ยงการป้องกันของ Android


นี่คือหนึ่งใน โซลูชั่นที่ดีที่สุดเมื่อได้รับ รากถูกต้องบนสมาร์ทโฟนและแท็บเล็ตโดยไม่ต้องใช้คอมพิวเตอร์ วันนี้โปรแกรมนี้ได้รับสิทธิ์รูทในการทดสอบ Samsung Galaxy Nexus และ แท็บเล็ตจีนฟรีแลนเดอร์ ข้อดีอย่างหนึ่งของโปรแกรมเวอร์ชันเฉพาะนี้จากนักพัฒนาชาวจีนก็คืออินเทอร์เฟซของโปรแกรมได้รับการแปลเป็นภาษารัสเซียอย่างสมบูรณ์ อ่านคำแนะนำด้านล่างเกี่ยวกับวิธีการรับสิทธิ์รูท

คำแนะนำวิดีโอของฉัน รับรูตสิทธิ์ผ่าน Baidu Root

1. ดาวน์โหลดแอปพลิเคชั่น Baidu Root: และติดตั้งลงในอุปกรณ์ของคุณ
(ความสนใจ!!!เมื่อติดตั้งบัคเก็ตอาจเขียนถึงคุณว่าแอปพลิเคชัน " มีโค้ดเพื่อหลีกเลี่ยงความปลอดภัยของ Android". ทำเครื่องหมายที่ช่องแล้วคลิก " ติดตั้งต่อไป") ช่องการติดตั้งเปิดโปรแกรมและดูข้อตกลงจากผู้เขียนเป็นภาษาจีน กดปุ่ม ยอมรับตามที่แสดงด้านล่าง

2. หากคุณเชื่อมต่ออินเทอร์เน็ตในเวลาปัจจุบันและโปรแกรมพบเวอร์ชันที่อัปเดตบนเซิร์ฟเวอร์ คุณจะได้รับแจ้งให้อัปเดตเวอร์ชันของโปรแกรมเป็นเวอร์ชันปัจจุบัน ฉันจะทำเช่นนี้ ถึงตอนนี้ผมกดแล้ว ยกเลิกและพยายามรูท [และหากไม่ได้รับรูท ฉันจะรีสตาร์ทโปรแกรมอีกครั้งและอัปเดต จากนั้นลองรูทอีกครั้ง (ด้านล่างฉันจะร่างไดอะแกรมเดียวกันเฉพาะกับอินเทอร์เฟซโปรแกรมภาษาจีนดั้งเดิมเท่านั้น เพื่อทำความเข้าใจวิธีดำเนินการหากทุกอย่างเป็นภาษาจีน)].

3. ตอนนี้กดปุ่ม " รับรูท" และรอให้โปรแกรมเสร็จสิ้น บน Nexus ของฉันใช้งานได้ประมาณ 1 นาที บนแท็บเล็ต Freelander นานกว่าเล็กน้อย

เอาล่ะ เราเห็นว่าได้รับสิทธิ์รูทแล้ว

และตอนนี้ตามที่สัญญาไว้ข้างต้น ฉันจะโพสต์คู่มือสั้น ๆ เกี่ยวกับวิธีการรับสิทธิ์รูทเดียวกัน แต่ด้วยความเข้าใจว่าอินเทอร์เฟซของโปรแกรม Baidu Root นั้นเป็นภาษาจีนทั้งหมด

1. ช่องการติดตั้ง: เปิดโปรแกรมและดูข้อตกลงจากผู้เขียนเป็นภาษาจีน คลิกปุ่มขวาที่วงกลมตามภาพด้านล่าง

2. หากคุณเชื่อมต่ออินเทอร์เน็ตในเวลาปัจจุบันและโปรแกรมพบเวอร์ชันที่อัปเดตบนเซิร์ฟเวอร์ คุณจะได้รับแจ้งให้อัปเดตเวอร์ชันของโปรแกรมเป็นเวอร์ชันปัจจุบัน หากต้องการอัปเดตเวอร์ชัน ให้คลิกปุ่มขวา หากไม่ต้องการอัปเดต - ซ้าย- โดยปกติแล้วอินเทอร์เฟซภาษาจีนจะปรากฏขึ้นหลังจากการอัพเดต

3. ตอนนี้กด บน ปุ่มสีน้ำเงิน (ผมวงกลมไว้ในภาพ) และรอให้โปรแกรมเสร็จสิ้น

การได้รับสิทธิ์รูทสำหรับ Android โดยไม่ต้องใช้พีซีและต้องใช้เครื่องมือที่เรียนรู้ยาก เครื่องมือซอฟต์แวร์- ค่อนข้าง โอกาสที่มีอยู่- ในบทความนี้เราจะบอกวิธีรับสิทธิ์ Superuser ในเวลาเพียงสองข้อ ขั้นตอนง่ายๆโดยใช้แอป Framaroot สำหรับ Android

ข้อได้เปรียบหลักของวิธีการที่อธิบายไว้ในการรับสิทธิ์รูทประการแรกคือความเรียบง่ายและระยะเวลาสั้น ๆ ที่สามารถดำเนินการกระบวนการนี้ได้ เราปฏิบัติตามคำแนะนำ แต่ก่อนอื่นมีคำเตือนที่สำคัญ

สำคัญ! การยักย้ายที่อธิบายไว้ด้านล่างมีความเสี่ยงบางประการ! การดำเนินการแต่ละครั้ง รวมถึงการทำตามคำแนะนำด้านล่าง ดำเนินการโดยผู้ใช้ด้วยความเสี่ยงและอันตรายเอง การบริหารทรัพยากรจะไม่รับผิดชอบต่อผลเสียที่อาจเกิดขึ้น

แอปพลิเคชัน Framarut หลังจากดาวน์โหลดหรือคัดลอกไปยังหน่วยความจำหรือการ์ดหน่วยความจำของอุปกรณ์แล้ว จะเป็นไฟล์ APK ธรรมดาโดยสิ้นเชิง การติดตั้งไม่จำเป็นต้องดำเนินการพิเศษใด ๆ ทุกอย่างเป็นไปตามมาตรฐาน

ขั้นตอนที่ 2: รับสิทธิ์รูท

เช่นเดียวกับการติดตั้ง การได้รับสิทธิ์รูทโดยใช้ Framarut นั้นไม่จำเป็นต้องมีขั้นตอนมากมาย เราแค่ทำดังต่อไปนี้


นี่คือหนึ่งในโซลูชั่นที่ดีที่สุดในการรับสิทธิ์รูทบนสมาร์ทโฟนและแท็บเล็ตโดยไม่ต้องใช้คอมพิวเตอร์ วันนี้ โปรแกรมนี้ได้รับสิทธิ์การรูทบน Samsung Galaxy Nexus อัจฉริยะที่ทดสอบและแท็บเล็ต Chinese Freelander ข้อดีอย่างหนึ่งของโปรแกรมเวอร์ชันเฉพาะนี้จากนักพัฒนาชาวจีนก็คืออินเทอร์เฟซของโปรแกรมได้รับการแปลเป็นภาษารัสเซียอย่างสมบูรณ์ อ่านคำแนะนำด้านล่างเกี่ยวกับวิธีการรับสิทธิ์รูท

1. ดาวน์โหลดแอปพลิเคชั่น Baidu และติดตั้งลงในอุปกรณ์ของคุณ
(โปรดทราบ!!! เมื่อติดตั้ง Android อาจเขียนถึงคุณว่าแอปพลิเคชัน “มีรหัสเพื่อหลีกเลี่ยงการป้องกัน Android” ทำเครื่องหมายที่ช่องแล้วคลิก “ติดตั้งต่อไป”) ในด้านการติดตั้งเราเปิดโปรแกรมและดูข้อตกลงจากผู้เขียนเป็นภาษาจีน คลิกปุ่มยอมรับตามที่แสดงด้านล่าง


2. หากคุณเชื่อมต่ออินเทอร์เน็ตในเวลาปัจจุบันและโปรแกรมพบเวอร์ชันที่อัปเดตบนเซิร์ฟเวอร์ คุณจะได้รับแจ้งให้อัปเดตเวอร์ชันของโปรแกรมเป็นเวอร์ชันปัจจุบัน ฉันจะทำเช่นนี้ ในตอนนี้ ฉันคลิกยกเลิกและพยายามรูท [และหากไม่ได้รับรูท ฉันจะรีสตาร์ทโปรแกรมอีกครั้งและอัปเดต จากนั้นลองรูทอีกครั้ง (ด้านล่างฉันจะร่างไดอะแกรมเดียวกันด้วยอินเทอร์เฟซโปรแกรมภาษาจีนดั้งเดิมเท่านั้น เพื่อทำความเข้าใจวิธีดำเนินการหากทุกอย่างเป็นภาษาจีน)

3. ตอนนี้คลิกปุ่ม "รับรูท" และรอให้โปรแกรมดำเนินการให้เสร็จสิ้น บน Nexus ของฉันใช้งานได้ประมาณ 1 นาที บนแท็บเล็ต Freelander นานกว่าเล็กน้อย

เอาล่ะ เราเห็นว่าได้รับสิทธิ์รูทแล้ว

และตอนนี้ตามที่สัญญาไว้ข้างต้น ฉันจะโพสต์คู่มือเล็ก ๆ เพื่อรับสิทธิ์รูทเดียวกัน แต่ด้วยความเข้าใจว่าอินเทอร์เฟซของโปรแกรม Baidu Root นั้นเป็นภาษาจีนทั้งหมด:

1. ช่องการติดตั้ง: เปิดโปรแกรมและดูข้อตกลงจากผู้เขียนเป็นภาษาจีน คลิกปุ่มขวาที่วงกลมตามภาพด้านล่าง

2. หากคุณเชื่อมต่อกับอินเทอร์เน็ตในเวลาปัจจุบันและโปรแกรมพบเวอร์ชันที่อัปเดตบนเซิร์ฟเวอร์ คุณจะได้รับแจ้งให้อัปเดตเวอร์ชันของโปรแกรมเป็นเวอร์ชันปัจจุบัน หากต้องการอัปเดตเวอร์ชัน ให้คลิกปุ่มขวา หากไม่ต้องการอัปเดต ให้คลิกปุ่มซ้าย โดยปกติแล้วอินเทอร์เฟซภาษาจีนจะปรากฏขึ้นหลังจากการอัพเดต

เราแนะนำให้คุณรู้จักกับบทความจำนวนหนึ่งที่แสดงให้เห็นอย่างชัดเจนถึงความง่ายของแอพ Android คุณไม่จำเป็นต้องมีตัวแยกส่วนสำหรับสิ่งนี้ เพียงแค่มีความรู้เพียงผิวเผินเกี่ยวกับภาษา Java และภาษา Smali ดังนั้นหากแอปพลิเคชันของคุณได้รับความนิยมเพียงพอ โปรดทราบว่ามันจะถูกขโมยและฟังก์ชันที่ต้องชำระเงินจะถูกเปิดใช้งานผ่านการปรับแต่งง่ายๆ และหากคุณตัดสินใจที่จะสร้างรายได้โดยใช้การโฆษณา มันจะถูกปิด

การปกป้องแอปพลิเคชันเป็นเรื่องยาก แต่ก็เป็นไปได้ ก่อนอื่นก็คุ้มค่าทันที ละทิ้งรูปแบบการจัดจำหน่าย Pro/Lite- แอปพลิเคชันนี้ถอดออกจากสมาร์ทโฟนได้ง่ายมาก ดังนั้นโจรจะต้องซื้อแอปพลิเคชันเพียงครั้งเดียวเท่านั้น จากนั้นจึงจะสามารถแจกจ่ายได้ตามที่เป็นอยู่ ประการที่สองคุณต้องดูแล รหัสป้องกันการย้อนกลับ- การถอดรหัสโค้ด Java เป็นเรื่องง่าย แต่มีการเปลี่ยนแปลง รหัสไบนารี่ไม่ต้องการทักษะหรือเครื่องมือพิเศษใดๆ ประการที่สาม คุณต้องแน่ใจว่าแม้ในกรณีที่แฮ็กสำเร็จ แอปพลิเคชันก็ไม่ทำงาน จากนั้นแฮ็กเกอร์จะต้องแก้ไขปัญหาสองข้อพร้อมกัน: แฮ็กแอปพลิเคชันและทำให้เวอร์ชันที่ถูกแฮ็กทำงานได้

ดังนั้นเราจึงละทิ้งเวอร์ชัน Pro และเริ่มการต่อสู้

การซ่อนและทำให้โค้ดสับสน

วิธีที่ดีที่สุดในการปกป้องโค้ดแอปพลิเคชันจากการย้อนกลับคือ ทำให้สับสนกล่าวอีกนัยหนึ่งคือการทำให้ไบต์โค้ดสับสนจนยากเหลือทนสำหรับผู้กลับจะเข้าใจมัน มีเครื่องมือหลายอย่างที่สามารถทำได้ สิ่งที่ง่ายที่สุดแต่ยังคงมีประสิทธิภาพรวมอยู่ใน Android Studio นี้ โปรการ์ด.

หากต้องการเปิดใช้งาน เพียงเพิ่มบรรทัด miniifyEnabled true ให้กับส่วน android → buildTypes → release ของไฟล์ build.gradle:

android(...buildTypes(release(minifyEnabled true)...))

หุ่นยนต์ (

. . .

ประเภทการสร้าง(

ปล่อย(

ลดขนาดเปิดใช้งานจริง

. . .

หลังจากนี้ Android Studio จะเริ่มส่ง "รุ่น" ทั้งหมดผ่าน ProGuard เป็นผลให้แอปพลิเคชันมีขนาดกะทัดรัดมากขึ้น (เนื่องจากการลบรหัสที่ไม่ได้ใช้) และจะได้รับการป้องกันการย้อนกลับในระดับหนึ่ง “บางส่วน” ในแง่ที่ว่า ProGuard จะแทนที่ชื่อของคลาส วิธีการ และฟิลด์ภายในทั้งหมดด้วยการผสมตัวอักษรหนึ่งหรือสองตัว นี่จะทำให้โค้ดที่ถอดรหัสแล้ว/แยกส่วนเข้าใจยากขึ้นมาก


ขั้นตอนต่อไป - การเข้ารหัสสตริง- สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณจัดเก็บข้อมูลที่ละเอียดอ่อนไว้ภายในแอปพลิเคชัน: ตัวระบุ คีย์ ตำแหน่งข้อมูล REST API ทั้งหมดนี้จะช่วยให้แฮกเกอร์นำทางโค้ดของคุณหรือดึงข้อมูลสำคัญออกมาได้

คุณสามารถเข้ารหัสสตริงได้ ในรูปแบบที่แตกต่างกันเช่น การใช้เครื่องมือ Stringer หรือ DexGuard ข้อได้เปรียบ: การแก้ไขโค้ดที่มีอยู่โดยอัตโนมัติอย่างสมบูรณ์เพื่อใช้การเข้ารหัสสตริง ข้อเสีย: ราคาที่เอื้อมถึงสำหรับบริษัท แต่สูงเกินไปสำหรับนักพัฒนาอิสระ

ดังนั้นเราจะพยายามทำมันด้วยตัวเอง ในกรณีที่ง่ายที่สุด การเข้ารหัสสตริงโดยใช้ Java ทำได้ดังนี้:

ไบต์สาธารณะ encryptString (ข้อความสตริง SecretKey Secret) ส่งข้อยกเว้น ( Cipher cipher = null; cipher = Cipher.getInstance ("AES / ECB / PKCS5Padding"); cipher.init (Cipher.ENCRYPT_MODE, Secret); return cipher.doFinal ( message.getBytes("UTF-8"));

ไบต์สาธารณะ encryptString (ข้อความสตริง ความลับ SecretKey) ส่งข้อยกเว้น (

ไซเฟอร์ ไซเฟอร์ = null ;

รหัส .init (รหัส .ENCRYPT_MODE ความลับ ) ;

กลับรหัส .doFinal ( ข้อความ .getBytes ( "UTF-8" ) ) ;

และการถอดรหัสเป็นดังนี้:

สตริงคงที่สาธารณะ decryptString (ไบต์ cipherText, SecretKey Secret) ส่งข้อยกเว้น ( Cipher cipher = null; cipher = Cipher.getInstance ("AES / ECB / PKCS5Padding"); cipher.init (Cipher.DECRYPT_MODE, ความลับ); คืนสตริงใหม่ (cipher) .doFinal(ข้อความเข้ารหัส), "UTF-8" )

สตริงคงที่สาธารณะ decryptString (byte cipherText , SecretKey Secret ) ส่งข้อยกเว้น (

ไซเฟอร์ ไซเฟอร์ = null ;

การเข้ารหัส = การเข้ารหัส .getInstance ( "AES/ECB/PKCS5Padding" ) ;

รหัส .init ( รหัส . DECRYPT_MODE , ความลับ ) ;

กลับสตริงใหม่ (cipher . doFinal ( cipherText ) , "UTF-8" ) ;

ในการสร้างคีย์ บรรทัดเดียวก็เพียงพอแล้ว:

SecretKey แบบคงที่สาธารณะ GenerateKey (รหัสผ่านสตริง) ส่งข้อยกเว้น ( return Secret = new SecretKeySpec(password.getBytes(), "AES"); )

SecretKey แบบคงที่สาธารณะ GenerateKey (รหัสผ่านสตริง) พ่นข้อยกเว้น (

กลับความลับ = SecretKeySpec ใหม่ (รหัสผ่าน.getBytes (), "AES");

ประเด็นคือการเขียนแอปพลิเคชันเดสก์ท็อป/มือถืออย่างง่ายใน Java ซึ่งจะนำสตริงทั้งหมดของคุณเป็นอินพุตและสร้างเวอร์ชันที่เข้ารหัสเป็นเอาต์พุต ถัดไป คุณแทรกสตริงเหล่านี้ลงในแอปพลิเคชันหลักแทนที่จะเป็นสตริงดั้งเดิม และในตำแหน่งที่มีการเข้าถึง ให้เรียกใช้ฟังก์ชัน decryptString()

เป็นผลให้ผู้โจมตีไม่สามารถเห็นสตริงที่เข้ารหัสโดยการถอดรหัสแอปพลิเคชัน แต่แน่นอนว่าเขาสามารถเขียนตัวถอดรหัสแบบง่ายๆ โดยใช้โค้ดที่ถอดรหัสแล้วของตัวเข้ารหัสของคุณ กล่าวอีกนัยหนึ่ง นี่ไม่ใช่ยาครอบจักรวาล แต่การเข้ารหัสสตริงจะเพิ่มความซับซ้อนอีกชั้นหนึ่ง

คุณสามารถก้าวไปอีกขั้นด้วยการใช้หนึ่งในเครื่องมือป้องกันแอปพลิเคชัน Android ที่ครอบคลุม เช่น AppSolid มันมีราคาแพงอีกครั้ง แต่ช่วยให้คุณเข้ารหัสแอปพลิเคชันทั้งหมดได้ สิ่งนี้อาจทำให้ผู้กลับรายการจำนวนมากกลัวได้ แต่มีเครื่องมือจำนวนหนึ่ง รวมถึงตัวถอดรหัส Java JEB แบบชำระเงิน ซึ่งสามารถลบการป้องกันดังกล่าวได้โดยอัตโนมัติ

คุณยังสามารถลองแบ่งแอปพลิเคชันของคุณออกเป็นโมดูลเล็กๆ หลายๆ โมดูลได้ ตามที่ฉันได้เขียนไปแล้วในบทความ การเขียนแอปพลิเคชันแบบโมดูลาร์สำหรับ Android สิ่งนี้ไม่ใช่วิธีการป้องกัน และแทบจะไม่เป็นอุปสรรคต่อการทำงานของผู้กลับทาง แต่ก็จะแตกแยกต่างๆ ระบบอัตโนมัติแอปพลิเคชันแคร็ก พวกเขาจะไม่สามารถเข้าใจว่าจะค้นหาโค้ดในโมดูลได้ที่ไหน

สิ่งสุดท้าย: จำเป็นต้องลบ (ใส่ความคิดเห็น) ออกจากโค้ดที่เรียกไปยังตัวบันทึกทั้งหมด นั่นคือการเรียกทั้งหมดไปยัง Log.d(), Log.v() และอื่น ๆ มิฉะนั้นผู้โจมตีจะสามารถใช้ข้อมูลนี้เพื่อทำความเข้าใจตรรกะของแอปพลิเคชันได้

ขัดข้องแอปพลิเคชันที่ถูกแฮ็ก

โอเค เราทำให้ชีวิตของคนกลับด้านเสียไปนิดหน่อย ถึงเวลาที่จะทำอีกครั้ง! แต่คุณจะรู้ได้อย่างไรว่าแอปถูกแฮ็ก? แม่นยำยิ่งขึ้นมันจะรู้ได้อย่างไร? ท้ายที่สุดแล้ว แนวคิดของ "แฮ็ก" และ "ไม่แฮ็ก" นั้นมีอยู่ในหัวของเราเท่านั้น นั่นคือแนวคิดเหล่านี้มีลำดับที่ค่อนข้างสูงซึ่งไม่สามารถอธิบายตามอัลกอริทึมได้

มันก็เป็นเช่นนั้นแต่ก็ไม่เป็นเช่นนั้น ความจริงก็คือภายในไฟล์ APK มีชุดข้อมูลเมตาที่เก็บเช็คซัมของไฟล์ทั้งหมดในแพ็คเกจ และข้อมูลเมตานั้นลงนามด้วยรหัสของนักพัฒนา หากคุณเปลี่ยนแอปพลิเคชันและจัดแพ็กเกจอีกครั้ง ข้อมูลเมตาของแพ็กเกจจะเปลี่ยนไปและจะต้องลงนามแพ็กเกจอีกครั้ง และเนื่องจากตัวย้อนกลับไม่มีและไม่สามารถมีรหัสนักพัฒนาของคุณได้ มันจึงใช้รหัสที่สร้างขึ้นแบบสุ่มหรือที่เรียกว่ารหัสทดสอบ

Android เองจะกลืนแอปพลิเคชันดังกล่าวได้อย่างง่ายดาย (ไม่ได้เก็บฐานข้อมูลลายเซ็นดิจิทัลทั้งหมดของนักพัฒนา Android ที่เป็นไปได้ทั้งหมด) แต่เรามีของเราเอง ลายเซ็นดิจิทัลและเราสามารถตรวจสอบได้!

การตรวจสอบลายเซ็นดิจิทัล

ที่จริงแล้ววิธีการนี้ค่อนข้างง่าย คุณต้องใส่รหัสลงในแอปพลิเคชันที่จะได้รับแฮชของคีย์ของลายเซ็นดิจิทัลปัจจุบันของแพ็คเกจและเปรียบเทียบกับรหัสที่บันทึกไว้ก่อนหน้านี้ ตรงกัน - แอปพลิเคชันไม่ได้ถูกบรรจุใหม่ (และถูกแฮ็ก) ไม่ - เราส่งเสียงเตือน

ในการเริ่มต้น ให้แทรกโค้ดต่อไปนี้ลงในแอปพลิเคชัน (ยิ่งคุณซ่อนโค้ดไว้ลึกเท่าไรก็ยิ่งดี):

สตริงคงที่สาธารณะ getSignature(บริบทบริบท) ( String apkSignature = null; try ( PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); for ( ลายเซ็นต์: packageInfo.signatures) ( MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); apkSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT); Log.e( "DEBUG", "ลายเซ็น:" + apkSignature); -

สาธารณะสตริง getSignature (บริบทบริบท) (

สตริง apkSignature = null ;

พยายาม (

PackageInfo packageInfo = บริบท .getPackageManager() .getPackageInfo(

บริบท.getPackageName()

PackageManager.GET_SIGNATURES

สำหรับ (ลายเซ็นลายเซ็น : packageInfo .signatures ) (

MessageDigest md = MessageDigest .getInstance ( "SHA" ) ;

md.update(ลายเซ็น.toByteArray());

apkSignature = Base64 .encodeToString (md .digest () , Base64 .DEFAULT ) ;

บันทึก .e ("DEBUG" , "ลายเซ็น: " + apkSignature ) ;

) จับ (ข้อยกเว้น e) ( )

ส่งคืน apkSignature ;

สร้าง รันแอปพลิเคชัน และดูบันทึกการดำเนินการ คุณจะเห็นบรรทัด SIGNATURE: 478uEnKQV+fMQT8Dy4AKvHkYibo= นี่คือแฮช จะต้องไม่เพียงแค่จดจำเท่านั้น แต่ต้องวางไว้ในโค้ดแอปพลิเคชันเป็นค่าคงที่ เช่น ภายใต้ชื่อ SIGNATURE ตอนนี้ให้ลบบรรทัด Log.e... ออกจากโค้ดและเพิ่มวิธีการต่อไปนี้:

checkSignature บูลีนคงที่สาธารณะ (บริบทบริบท) ( return SIGNATURE.equals(getSignature(context)); )

checkSignature บูลีนคงที่สาธารณะ (บริบทบริบท) (

กลับ SIGNATURE .equals ( getSignature ( บริบท ) ) ;

มันจะตรวจสอบแฮชที่บันทึกไว้อย่างแม่นยำด้วยแฮชของคีย์ที่แอปพลิเคชันลงนามอยู่ในปัจจุบัน ฟังก์ชันจะคืนค่าเป็นจริงหากลายเซ็นดิจิทัลเป็นของคุณ (แอปพลิเคชันยังไม่ได้สร้างใหม่) และคืนค่าเป็นเท็จหากได้รับการแก้ไข จะทำอย่างไรในกรณีที่สองขึ้นอยู่กับคุณ คุณสามารถยุติแอปพลิเคชันด้วย os.exit(0) หรืออาจหยุดทำงานก็ได้ เช่น โดยการเรียกเมธอดบนออบเจ็กต์ที่ไม่ได้กำหนดค่าเริ่มต้น หรือเข้าถึงค่าอาร์เรย์ที่ไม่มีอยู่จริง

แต่โปรดจำไว้ว่า: ผู้โจมตีสามารถตัดรหัสยืนยันลายเซ็นดิจิทัลของคุณออกได้ และรหัสดังกล่าวจะไม่ทำงาน (ซึ่งก็เป็นจริงสำหรับรหัสที่ให้ไว้ด้านล่างด้วย) ดังนั้นให้ซ่อนมันไว้ในที่ที่ไม่ชัดเจน และเข้ารหัสแฮชของคีย์ต้นฉบับดังที่แสดงไว้ด้านบน


ตรวจสอบแหล่งการติดตั้ง

วิธีการป้องกันอีกวิธีหนึ่งคือการค้นหาว่าแอปพลิเคชันถูกติดตั้งจากที่ใด ตรรกะที่นี่ง่ายมาก: หากแหล่งที่มาของการติดตั้งคือ เพลย์สโตร์จากนั้นทุกอย่างก็เรียบร้อยดี นี่เป็นแอปพลิเคชันต้นฉบับที่ยังไม่ได้แพ็ก ถ้าไม่เช่นนั้น Varez จะดาวน์โหลดจากฟอรัมและติดตั้งจากการ์ดหน่วยความจำหรือจากตลาดมืด

คุณสามารถดูได้ว่าแอปพลิเคชันถูกติดตั้งจากที่ใดในบรรทัดเดียว และฟังก์ชันที่ทำสิ่งนี้อาจมีลักษณะดังนี้:

checkInstaller บูลีนคงที่สาธารณะ (บริบทบริบท) ( ตัวติดตั้งสตริงสุดท้าย = context.getPackageManager().getInstallerPackageName(context.getPackageName()); return installer != null && installer.startsWith("com.android.vending"); )

checkInstaller บูลีนคงที่สาธารณะ (บริบทบริบท) (

ตัวติดตั้งสตริงสุดท้าย = บริบท .getPackageManager() .getInstallerPackageName(context .getPackageName()) ;

ส่งคืนตัวติดตั้ง != null & แอมป์ ; & แอมป์; installer.startsWith("com.android.vending");

ตามปกติ: จริง - ทุกอย่างเรียบร้อยดี เท็จ - ฮูสตัน เรามีปัญหา

การกำหนดโปรแกรมจำลอง

วิธีการย้อนกลับแอปพลิเคชันบางวิธีจำเป็นต้องใช้โปรแกรมจำลอง ดังนั้นจึงจะเป็นประโยชน์ในการเพิ่มโค้ดลงในแอปพลิเคชันที่ตรวจสอบว่ากำลังทำงานอยู่ในสภาพแวดล้อมเสมือนหรือไม่ ซึ่งสามารถทำได้โดยการอ่านค่าของตัวแปรระบบบางตัว เช่น มาตรฐาน โปรแกรมจำลอง Android Studio ตั้งค่าตัวแปรและค่าเหล่านี้:

ro.hardware=ปลาทอง ro.kernel.qemu=1 ro.product.model=sdk

ro .hardware = ปลาทอง

ro .kernel .qemu = 1

ro .product .model = sdk

ดังนั้นหลังจากอ่านค่าของตัวแปรเหล่านี้แล้ว เราสามารถสรุปได้ว่าโค้ดถูกเรียกใช้งานในโปรแกรมจำลอง:

checkEmulator บูลีนคงที่สาธารณะ () ( ลอง ( boolean goldfish = getSystemProperty("ro.hardware").contains("goldfish"); boolean emu = getSystemProperty("ro.kernel.qemu").length() > 0; boolean sdk = getSystemProperty("ro.product.model").contains("sdk"); if (emu || goldfish || sdk) ( return true; ) ) catch (ข้อยกเว้น e) () return false ) สตริงคงที่ส่วนตัว getSystemProperty ( ชื่อสตริง) ส่งข้อยกเว้น ( Class sysProp = Class.forName("android.os.SystemProperties"); return (String) sysProp.getMethod("get", new Class(String.class)).invoid(sysProp, new Object ( ชื่อ));

checkEmulator บูลีนคงที่สาธารณะ () (

พยายาม (

หากคุณลืมรหัสผ่านหรือรูปแบบบนอุปกรณ์ Android ของคุณ นี่ไม่ใช่เหตุผลที่คุณต้องตื่นตระหนก มีหลายอย่างรวดเร็วและ ตัวเลือกง่ายๆปลดล็อคโทรศัพท์หรือแท็บเล็ตของคุณ ใช้ระบบปฏิบัติการ Androidในกรณีที่คุณจำรหัสรูปแบบหรือ PIN ไม่ได้

การป้อนข้อมูลบัญชี Google

หากสมาร์ทโฟนหรือแท็บเล็ตของคุณมี การเชื่อมต่อแบบถาวรโดย เครือข่ายไร้สายแล้วคุณก็สามารถแก้ปัญหาการเลี่ยงการป้องกันได้ง่ายๆ เพียงแค่เข้าไป ที่อยู่อีเมลและรหัสผ่าน หลังจากพยายามปลดล็อคหน้าจอไม่สำเร็จ 5 ครั้ง การแจ้งเตือนจะปรากฏขึ้น คลิกที่มันและในหน้าต่างที่ปรากฏขึ้นให้ป้อนข้อมูลผู้ใช้บัญชี Google ของคุณ

จะทำอย่างไรถ้าคุณลืมรหัสผ่านบัญชีของคุณ โพสต์ของ Google- ทำตามขั้นตอนการกู้คืนการเข้าถึงบัญชีของคุณโดยตรงด้วยความช่วยเหลือจากฝ่ายสนับสนุน

การปลดล็อคด้วยการฮาร์ดรีเซ็ต

เมื่อใช้วิธีการนี้ ข้อมูลส่วนบุคคลทั้งหมดจะถูกลบ และระบบสมาร์ทโฟนจะกลับสู่การตั้งค่าจากโรงงาน (ไฟล์การ์ด SD จะไม่ได้รับผลกระทบ) ก่อนดำเนินการตามขั้นตอนขอแนะนำให้มีไฟล์สำรองซึ่งคุณสามารถกู้คืนข้อมูลผู้ใช้ได้

วิธีรีเซ็ตที่ง่ายที่สุดคือการใช้ยูทิลิตี้ที่อยู่ในการตั้งค่าอุปกรณ์ของคุณ เนื่องจากการเข้าถึงระบบถูกบล็อก คุณจะต้องดำเนินการผ่าน:


การกระทำของผู้ใช้แต่ละครั้ง (การสร้างรหัส PIN, คีย์กราฟิก) จะสะท้อนให้เห็นในระบบโดยการสร้างไฟล์บางไฟล์ เราสามารถสรุปได้ว่าหากคุณลบข้อมูลรหัสผ่าน คุณจะสามารถปลดล็อคอุปกรณ์ได้โดยไม่สูญเสียข้อมูลผู้ใช้

ผู้ใช้หลายคนสงสัยว่าจะปลดล็อค Android ผ่านคอมพิวเตอร์ได้อย่างไร ในการทำเช่นนี้คุณจะต้องมียูทิลิตี้ ADB รวมถึงอุปกรณ์ของคุณที่เชื่อมต่อในโหมดแก้ไขข้อบกพร่อง USB ปฏิบัติตามอัลกอริทึมต่อไปนี้:


adb shellrm /data/system/gesture.key

RM /data/system/locksettings.db;

RM /data/system/locksettings.db-wal;

RM /data/system/locksettings.db-shm;

กำลังรีเฟรชอุปกรณ์

หากไม่มีวิธีอื่นในการแฮ็ก Android ให้คุณด้วยเหตุผลบางประการ ซึ่งสามารถทำได้หลายวิธี:

  • ผ่านคอมพิวเตอร์โดยใช้สาย USB
  • ผ่านเมนูการกู้คืนบนอุปกรณ์ Android ใด ๆ คุณต้องใช้คอมพิวเตอร์เพื่อดาวน์โหลดไฟล์เฟิร์มแวร์ลงในหน่วยความจำของโทรศัพท์หรือแท็บเล็ตโดยตรง

ในกรณีนี้จะสามารถดาวน์โหลดได้ไม่เพียงเท่านั้น เฟิร์มแวร์อย่างเป็นทางการแต่ยังรวมถึงตัวเลือกแบบกำหนดเองต่างๆ ที่สามารถเปลี่ยนแปลงการออกแบบ ฟังก์ชั่นการป้องกัน ไดรเวอร์ ยูทิลิตี้ ฯลฯ ได้

การลบ Gesture.key (ใช้ได้กับการล็อคด้วยปุ่มกราฟิกเท่านั้น)

การปลดล็อคโทรศัพท์หรือแท็บเล็ต Android โดยใช้วิธีนี้เป็นไปไม่ได้หากไม่มีสิทธิ์รูทและ หากคุณไม่ตรงตามเงื่อนไขเหล่านี้ ให้เลือกวิธีอื่นเพื่อหลีกเลี่ยงการป้องกัน คีย์กราฟิกถูกรีเซ็ตดังนี้:


วิธีการหลายวิธีที่อธิบายไว้ข้างต้นเป็นไปไม่ได้หากไม่ได้ปลดล็อคโปรแกรมโหลดบูต เมื่อทำสิ่งนี้แล้ว คุณจะได้รับสิทธิ์รูทและจะสามารถติดตั้งได้ รุ่นของตัวเองเฟิร์มแวร์หรือการกู้คืนแบบกำหนดเอง ดังนั้นก่อนที่จะแฮ็คการล็อค Android คุณจะต้องลบการป้องกัน bootloader ออก ขอแนะนำให้ดำเนินการนี้ทันทีเพื่อเตรียมพร้อมในสถานการณ์ที่คุณลืมรหัส PIN/รูปแบบ

ปลดล็อคอัลกอริธึม:


หลังจากนี้กระบวนการเปิดใช้งาน bootloader จะเริ่มต้นและปรากฏบนหน้าจออุปกรณ์ รอให้กระบวนการเสร็จสิ้น จากนั้นจึงรีสตาร์ทอุปกรณ์ของคุณ การปลดล็อค Bootloader เสร็จสมบูรณ์ เคล็ดลับที่อธิบายไว้ข้างต้นเหมาะสำหรับแทบทุกโอกาส เพราะทุกคนอาจมีสถานการณ์ปัญหาเป็นของตัวเอง เราหวังว่าคำแนะนำของเราจะช่วยคุณกำจัดปัญหาได้อย่างรวดเร็วและถูกต้อง



 


อ่าน:


ใหม่

วิธีฟื้นฟูรอบประจำเดือนหลังคลอดบุตร:

ไดเรกทอรีไดโอด ไดโอดเรียงกระแสกำลังสูง 220V

ไดเรกทอรีไดโอด ไดโอดเรียงกระแสกำลังสูง 220V

วัตถุประสงค์หลักของไดโอดเรียงกระแสคือการแปลงแรงดันไฟฟ้า แต่นี่ไม่ใช่การใช้งานเฉพาะสำหรับเซมิคอนดักเตอร์เหล่านี้...

วิธีรีเซ็ตรหัสผ่านผู้ดูแลระบบบน Mac OS X โดยไม่ต้องใช้แผ่นดิสก์การติดตั้ง

วิธีรีเซ็ตรหัสผ่านผู้ดูแลระบบบน Mac OS X โดยไม่ต้องใช้แผ่นดิสก์การติดตั้ง

แม้จะมีชื่อที่ไม่ชัดเจน แต่บทความนี้จะไม่เกี่ยวกับการแฮ็กบัญชีใน Mac OS X (คุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้หากต้องการ...

การตั้งค่า Shadow Defender

การตั้งค่า Shadow Defender

และอื่นๆ อีกมากมาย โดยเฉพาะอย่างยิ่ง เราได้กล่าวถึงสิ่งต่างๆ เช่น (ซึ่งสามารถทำหน้าที่ป้องกันการติดเชื้อได้ หรืออย่างน้อยก็เป็นวิธีหนึ่งในการกลับมา...

ทำไมโปรเซสเซอร์ในคอมพิวเตอร์ของฉันถึงร้อนจัด?

ทำไมโปรเซสเซอร์ในคอมพิวเตอร์ของฉันถึงร้อนจัด?

ฉันไม่ได้วางแผนที่จะเขียนบทความนี้ มีคำถามมากมายเกี่ยวกับแล็ปท็อปที่ร้อนเกินไป การทำความสะอาด และการเปลี่ยนแผ่นระบายความร้อน บน...

ฟีดรูปภาพ อาร์เอสเอส