Rumah >Operasi dan penyelenggaraan >Keselamatan >Apakah kaedah kejuruteraan terbalik dalam Android?

Apakah kaedah kejuruteraan terbalik dalam Android?

WBOY
WBOYke hadapan
2023-05-22 09:55:281590semak imbas

1. Dapatkan senjata

Xiao Bai, jika anda ingin menggunakan senjata ini, anda mesti membuka meridian terlebih dahulu.

1.1 Meridian (Persekitaran)

1.Akar, akar telefon mudah alih, tiada Android tanpa akar. Hanya dengan membuka meridian akar kita boleh meneruskan operasi seterusnya.

2. Pemasangan rangka kerja Xposed Jika anda ingin menggunakan Xposed sebagai senjata, anda mesti boleh mengambilnya dahulu sebelum anda boleh menggunakannya.

1.2 Senjata

xposedBridgeApi-82.jar.jar.

Ini senjata kita, Xiaobai, ayuh, saya akan tunjukkan kegunaan asas senjata ini.

2. Demonstrasi senjata

Apakah kaedah kejuruteraan terbalik dalam Android?

Di sini kami menggunakan senjata Xposed untuk memintas packageName dan kemudian mengeluarkannya.

Malah, senjata ini hanya dapat memaksimumkan keupayaannya apabila digandingkan dengan kekuatan dalaman.

Dengan kekuatan dalaman, tuan, bagaimana untuk melakukan ini.

Jangan tergesa-gesa, mari lakukan langkah demi langkah.

0x02 Berlatih menggunakan tahap pertama kekuatan dalaman Hook (Android Studio 3.0 +Xposed)

Xiaobai, izinkan saya mengajar anda titik acupoint operasi tahap pertama kekuatan dalaman. Dengar baik-baik.

Konfigurasi asas Android Studio 3.0

Mari kita sediakan persekitaran untuk pelaksanaan kandungan dahulu.

(1) Mula-mula bina projek yang tidak memerlukan Aktiviti

Apakah kaedah kejuruteraan terbalik dalam Android?

(2) Kemudian import pakej balang. Dan klik kanan tambah sebagai Perpustakaan.

Apakah kaedah kejuruteraan terbalik dalam Android?

(3) Isikan fail Androidmanifest.xml.

Apakah kaedah kejuruteraan terbalik dalam Android?

rreee

(4) Ubah suai kaedah kebergantungan

Kandungan pakej balang sudah wujud dalam Xposed lagi akan konflik.

Apakah kaedah kejuruteraan terbalik dalam Android?

(5) Asas penciptaan model Xposed

Gunakan alt+enter untuk melaksanakan kaedah.

Apakah kaedah kejuruteraan terbalik dalam Android?

Xiaobai, dengar kata-kata saya yang berjela-jela.

handleLoadPackage, kaedah ini digunakan untuk melaksanakan operasi pengguna semasa memuatkan pakej aplikasi.

LoadPackageParam loadPackageParam:, parameter ini mengandungi beberapa maklumat asas tentang aplikasi yang dimuatkan.

Realisasi kekuatan dalaman

Apakah kaedah kejuruteraan terbalik dalam Android?

Ini boleh dicapai dalam satu ayat.

XposedBridge.log("HAI_app: " + loadPackageParam.packageName);

Di sini kita perlu memikirkan apa itu XposedBridge.log.

Cetakan posedBridge.log akan dikeluarkan kepada ciri pengelogan program permulaan rangka kerja xposed.. Ini juga akan memudahkan kita untuk melihat.

Mari kita lakukan langkah terakhir konfigurasi. Tetapkan tempat permulaan.

Buat fail baharu dalam direktori aset baharu. Nama fail ialah xposed_init.

Tulis nama pakej + kelas.

Hasil ujian

Bina APK

Pasang untuk ujian.

Cukup pasang pada telefon anda dan kemudian mulakan semula.

Apakah kaedah kejuruteraan terbalik dalam Android?

Berfikir

Yang dipanggil tuan memimpin anda masuk, dan amalan bergantung pada individu. Jadi.

Saya faham, Cikgu, bolehkah kita menapis melalui kaedah mudah ini? Sebagai contoh, tulis sistem analisis mudah. Atau sesuatu yang lain, kita juga boleh menapis ini. Saya akan cuba sendiri dahulu.

Pemupukan diri Xiobai

Melalui laluan berjalan ini, pendaftaran dianalisis dan ditapis.

Cubalah mudah.

Gunakan subrentetan rentetan java yang dipelajari semalam untuk menapis rentetan.

Apakah kaedah kejuruteraan terbalik dalam Android?

Kemudian uji.

Sudah tentu, ini juga boleh dijelaskan dengan lebih terperinci.

Amali praktikal longgokan kayu 0x03

Xiaobai, ayuh, tuan telah menemui longgokan kayu untuk awak, saya akan menumbuknya untuk awak. Bagaimana mata kail ini berfungsi dan cara melawannya. Belajarlah dengan baik.

Saya tahu, Cikgu.

Kumpul maklumat pancang

1. Maklumat asas

Xiao Bai, mari gunakan senjata yang kami gunakan sebelum ini untuk mengumpul maklumat asas ini.

Cikgu, apakah jenis maklumat yang biasanya kami kumpulkan?

Nah, secara amnya kita perlu mengumpul

1 Nama pakej pancang
2. Logik mudah pancang
....

Bai Kecil, kumpulkan ini sendiri.

Operasi untuk pemula

Yang pertama ialah nama pakej. Gunakan senjata, apkhelper.

Apakah kaedah kejuruteraan terbalik dalam Android?

Dapatkan maklumat nama pakej. com.example.log masuk

dan kemudian telefon logik mudah.

Apakah kaedah kejuruteraan terbalik dalam Android?

2.反编译信息收集

小白啊,收集玩了吗?

收集完了师傅。

好,我们接下来收集反编译信息。知己知彼,方能百战不殆。

师傅的操作

首先我们来看看我们要收集的东西。

1.关键的类名。
2.关键的函数位置。

来用Android Killer武器反编译木桩。

定位。

查看类名,进行记录。

Apakah kaedah kejuruteraan terbalik dalam Android?

小白,看清楚,是这个样子进行记录。

原来是这样。com/example/login/MainActivity;
但是我们要改成这样的。com.example.login.MainActivity

现在就需要定位到关键函数了。

Apakah kaedah kejuruteraan terbalik dalam Android?

这个login就是我们要Hook住的函数啦。

Ljava/lang/String;Ljava/lang/String;从这里我们可以看到是两个输入内容。并且类型是String。我们现在要做的就是要hook住这个输出,然后对其进行输出。

木桩实战练习

环境搭建

好了,小白,前期资料收集的差不多了。我现在要发功了,要看清楚我的使用哦。

先把环境调整好。

然后先做一个简单的过滤。

Apakah kaedah kejuruteraan terbalik dalam Android?

这个时候,收集的包名就排上用场了。

因为是hook的是方法,所以我们这里使用一个方法。

Apakah kaedah kejuruteraan terbalik dalam Android?

第一个参数,要hook的包名+方法名,这个也是我们收集好的。

第二个参数不动

第三个参数方法名

第四个参数 输入的参数

我们有两个String类型的参数,所以才这样写

最后一个参数,就是做一个监听。可以监听这个方法的使用前和使用后。

f for木桩

小白,一切准备你就须,看为师给你f这个木桩。

Apakah kaedah kejuruteraan terbalik dalam Android?

小白,你看这第一招

XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);

这一招搞它的第一个输入。

然后再来看这一招

XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);

这一招搞它的第二个输入。

然后最后一招。

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());

这一招就是拦截返回值。

小白啊,这里有一个需要思考的内容。

这样hook的意义或者作用是什么?

小白的思考

师傅,我觉得首先,这样可以拦截下输入的参数,还有返回的值。如果在hook里做一个转发信息的技能。那不就可以成功的对登录账户的人进行账号和密码的获取。

这不就是和钓鱼一样了嘛。

我觉得这是一个很大的漏洞,如果登录厂商没有做相应的处理,那这里我可以拿这个搞死他。

好了,小白,你说的很对,我们现在来对这个进行下测试吧。

f 木桩测试

Apakah kaedah kejuruteraan terbalik dalam Android?

小白啊,你看这里我们就成功的拦截内容了。小白分配给你一个任务,使用hook f来拦截木桩,并确保不管我是否输入正确,木桩能够成功登录。

0x04 木桩f进阶(小白的自我进步)

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());

思考一

师傅之前使用了一个param.getResult()获取了返回值,那我是不是可以使用相同的set方法,重新对这个进行赋值啊。

根据各种方式,我们知道了这里的返回值就是Z,也就是布尔型。

说干就干,争取f掉木桩。

Apakah kaedah kejuruteraan terbalik dalam Android?

Atas ialah kandungan terperinci Apakah kaedah kejuruteraan terbalik dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam