Dokumen ini merinci berbagai contoh kode dan fungsi yang terkait dengan pengembangan Android dan iOS, rekayasa balik, dan interaksi tingkat sistem. Ini mencakup topik mulai dari pengaitan metode dan akses properti sistem hingga manipulasi memori dan fitur khusus iOS. Contoh yang diberikan menunjukkan beragam teknik yang berguna untuk debugging, analisis, dan penelitian keamanan.
& juga menampilkan contoh
Daftar isi
Untuk membuat daftar singkatan :ab
Perluas dengan menulis kunci dan
Generator kait metode Java menggunakan pintasan keyboard
Ambil kunci SSL
⬆ Kembali ke atas
Muat modul CPP
Muat modul C
⬆ Kembali ke atas
Pos jaga satu kali
Cegat fungsiPtr & catat siapa yang membaca/menulis ke x2 melalui penghapusan izin dengan mprotect.
⬆ Kembali ke atas
Aktivitas soket
Contoh Android
⬆ Kembali ke atas
Mencegat Terbuka
Contoh untuk mencegat libc#open & mencatat backtrace jika file tertentu dibuka.
⬆ Kembali ke atas
Jalankan perintah shell
Daftar isi direktori:
Tarik biner dari iOS
⬆ Kembali ke atas
Daftar modul
Daftar modul & ekspor
⬆ Kembali ke atas
Catat kueri SQLite
⬆ Kembali ke atas
properti sistem dapatkan
⬆ Kembali ke atas
Transaksi pengikat
⬆ Kembali ke atas
Mengungkapkan metode asli
registerNativeMethods dapat digunakan sebagai teknik anti pembalikan ke pustaka .so asli, misalnya menyembunyikan simbol sebanyak mungkin, mengaburkan simbol yang diekspor, dan pada akhirnya menambahkan perlindungan pada jembatan JNI.
sumber
@Versi Lama
⬆ Kembali ke atas
Argumen metode log
⬆ Kembali ke atas
Menghitung kelas yang dimuat
Dan simpan ke file bernama pkg.classes
⬆ Kembali ke atas
Deskripsi kelas
Dapatkan metode & anggota kelas.
Jika terjadi tabrakan nama, metode & anggota memiliki nama yang sama, maka akan ditambahkan garis bawah pada anggota. sumber
⬆ Kembali ke atas
Matikan Wifi
Ini akan mematikan WiFi pada pembuatan Aktivitas pertama.
⬆ Kembali ke atas
Tetapkan proksi
Ini akan mengatur proxy seluruh sistem menggunakan alamat IP dan port yang disediakan.
⬆ Kembali ke atas
Dapatkan IMEI
Bisa juga hook & ganti IMEI.
⬆ Kembali ke atas
Kaitkan io InputStream
Kaitkan InputputStream & cetak buffer sebagai ascii dengan batas karakter & kecualikan daftar.
⬆ Kembali ke atas
Android membuat Roti Bakar
Tunggu kondisinya
Tunggu hingga DLL tertentu dimuat di aplikasi Unity, dapat menerapkan hot swap.
⬆ Kembali ke atas
URL tampilan web
Catat setiap kali WebView mengganti URL.
⬆ Kembali ke atas
Cetak string runtime
Menghubungkan ke String dari StringBuilder/Buffer & mencetak stacktrace.
⬆ Kembali ke atas
Cetak pembaruan preferensi bersama
⬆ Kembali ke atas
Perbandingan string
⬆ Kembali ke atas
Kaitkan JNI berdasarkan alamat
Kaitkan metode asli berdasarkan nama modul dan alamat metode serta cetak argumen.
⬆ Kembali ke atas
Konstruktor kait
⬆ Kembali ke atas
Refleksi kait
java.lang.reflect.Method#invoke(Obj objek, Objek... args, boolean bool)
⬆ Kembali ke atas
Kelas jejak
Metode kelas penelusuran, dengan warna cantik dan opsi untuk dicetak sebagai JSON & stacktrace.
TODO menambahkan jejak untuk c'tor.
⬆ Kembali ke atas
Dapatkan ID Android
ANDROID_ID bersifat unik di setiap aplikasi di Android.
⬆ Kembali ke atas
Ubah lokasi
⬆ Kembali ke atas
Lewati FLAG_SECURE
Lewati pertanyaan stackoverflow pencegahan tangkapan layar
⬆ Kembali ke atas
Pembaruan Preferensi Bersama
⬆ Kembali ke atas
Kait kelebihan beban
⬆ Kembali ke atas
Daftarkan penerima siaran
⬆ Kembali ke atas
daftar kelas mengimplementasikan antarmuka
⬆ Kembali ke atas
Tingkatkan jumlah langkah
⬆ Kembali ke atas
Catatan OS
⬆ Kembali ke atas
kotak peringatan iOS
⬆ Kembali ke atas
Akses Berkas
Catat setiap file yang terbuka
⬆ Kembali ke atas
Amati kelas
observasiKelas('KelasBeberapa$KelasDalam');
⬆ Kembali ke atas
Temukan UUID aplikasi iOS
Dapatkan UUID untuk jalur tertentu ketika dilampirkan ke aplikasi dengan membaca file plist di bawah setiap wadah aplikasi.
⬆ Kembali ke atas
Ekstrak cookie
⬆ Kembali ke atas
Jelaskan anggota kelas
Cetak peta anggota (dengan nilai) untuk setiap instance kelas
⬆ Kembali ke atas
Hierarki kelas
Object.keys(ObjC.classes) akan mencantumkan semua kelas Objective C yang tersedia,
tapi sebenarnya ini akan mengembalikan semua kelas yang dimuat dalam proses saat ini, termasuk kerangka sistem.
Jika kita menginginkan sesuatu seperti kelas lemahdump, untuk membuat daftar kelas dari yang dapat dieksekusi saja, runtime Objective C sudah menyediakan fungsi seperti itu objccopyClassNamesForImage
⬆ Kembali ke atas
Refleksi kait
Mengaitkan objc_msgSend
⬆ Kembali ke atas
Mencegat Seluruh Modul
Untuk mengurangi fungsi terkait UI, saya menggunakan langkah-langkah berikut:
⬆ Kembali ke atas
Buang segmen memori
⬆ Kembali ke atas
Pemindaian memori
⬆ Kembali ke atas
Penguntit
⬆ Kembali ke atas
Demangler Cpp
tambahkan ke skrip Anda
menyusun
berlari
⬆ Kembali ke atas
Kait awal
Pasang pengait sebelum DTINITARRAY ( sumber )
Kredit: iGio90
⬆ Kembali ke atas
Properti perangkat
Contoh ekstraksi properti perangkat iOS yang cepat & kotor
⬆ Kembali ke atas
Ambil tangkapan layar
⬆ Kembali ke atas
Catat Perintah SSH
⬆ Kembali ke atas
TODO
contoh:
Penyaji Mitsuba 3
Dokumentasi | Video tutorial | Linux | macOS | jendela | PyPI |
---|---|---|---|---|---|
️
Peringatan
️
Saat ini terdapat sejumlah besar pekerjaan tidak terdokumentasi dan tidak stabil yang terjadi
cabang master
. Kami sangat menyarankan Anda menggunakan kami
rilis terbaru
sampai pemberitahuan lebih lanjut.
Jika Anda sudah ingin mencoba perubahan yang akan datang, silakan lihat
panduan porting ini.
Ini harus mencakup sebagian besar fitur baru dan perubahan penting yang akan datang.
Perkenalan
Mitsuba 3 adalah sistem rendering berorientasi penelitian untuk cahaya maju dan mundur
simulasi transportasi dikembangkan di EPFL di Swiss.
Ini terdiri dari perpustakaan inti dan satu set plugin yang mengimplementasikan fungsionalitas
mulai dari bahan dan sumber cahaya hingga algoritma rendering lengkap.
Mitsuba 3 dapat ditargetkan ulang : ini berarti implementasi yang mendasarinya dan
struktur data dapat bertransformasi untuk menyelesaikan berbagai tugas berbeda. Untuk
Misalnya, kode yang sama dapat mensimulasikan transpor RGB skalar (klasik satu sinar pada satu waktu).
atau transportasi spektral diferensial pada GPU. Ini semua didasarkan pada
Dr.Jit, kompiler just-in-time (JIT) khusus yang dikembangkan khusus untuk proyek ini.
Fitur Utama
Lintas platform : Mitsuba 3 telah diuji di Linux ( x86_64
), macOS
( aarch64
, x8664
), dan Windows ( x8664
).
Performa tinggi : Kompiler Dr.Jit yang mendasari menggabungkan kode rendering
menjadi kernel yang mencapai kinerja canggih dengan menggunakan
backend LLVM yang menargetkan CPU dan backend CUDA/OptiX
menargetkan GPU NVIDIA dengan akselerasi perangkat keras ray tracing.
Python pertama : Mitsuba 3 sangat terintegrasi dengan Python. Bahan,
tekstur, dan bahkan algoritma rendering penuh dapat dikembangkan dengan Python,
yang dikompilasi oleh sistem JIT (dan secara opsional dibedakan) dengan cepat.
Hal ini memungkinkan eksperimen yang diperlukan untuk penelitian dalam grafik komputer dan
disiplin ilmu lainnya.
Diferensiasi : Mitsuba 3 adalah penyaji yang dapat dibedakan, artinya itu
dapat menghitung turunan dari keseluruhan simulasi sehubungan dengan masukan
parameter seperti pose kamera, geometri, BSDF, tekstur, dan volume. Dia
mengimplementasikan algoritma rendering terdiferensiasi terbaru yang dikembangkan di EPFL.
Spektral & Polarisasi : Mitsuba 3 dapat digunakan sebagai monokromatik
penyaji, penyaji berbasis RGB, atau penyaji spektral. Setiap varian bisa
secara opsional memperhitungkan efek polarisasi jika diinginkan.
Video tutorial, dokumentasi
Kami telah merekam beberapa video YouTube yang memberikan pengenalan lembut
Mitsuba 3 dan Dr.Jit. Selain itu, Anda dapat menemukan buku catatan Juypter lengkap
mencakup berbagai aplikasi, panduan cara kerja, dan dokumentasi referensi
di readthedocs.
Instalasi
Kami menyediakan roda biner yang telah dikompilasi sebelumnya melalui PyPI. Menginstal Mitsuba dengan cara ini semudah menjalankannya
pip instal mitsuba
pada baris perintah. Paket Python mencakup tiga belas varian secara default:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Dua yang pertama melakukan simulasi klasik satu sinar pada satu waktu menggunakan RGB
atau representasi warna spektral, sedangkan dua yang terakhir dapat digunakan untuk invers
rendering pada CPU atau GPU. Untuk mengakses varian tambahan, Anda perlu melakukannya
kompilasi versi khusus Dr.Jit menggunakan CMake. Silakan lihat
dokumentasi
untuk rincian tentang ini.
Persyaratan
Python >= 3.8
(opsional) Untuk komputasi pada GPU: Nvidia driver >= 495.89
(opsional) Untuk komputasi vektor/paralel pada CPU: LLVM >= 11.1
Penggunaan
Berikut adalah contoh sederhana "Hello World" yang menunjukkan betapa sederhananya merender a
adegan menggunakan Mitsuba 3 dari Python:
# Impor perpustakaan menggunakan alias "mi"impor mitsuba sebagai mi# Atur varian renderermi.setvariant('scalarrgb')# Muat scene = mi.loaddict(mi.cornellbox())# Render sceneimg = mi. render(adegan)# Tulis gambar yang dirender ke file EXRmi.Bitmap(img).write('cbox.exr')
Tutorial dan contoh buku catatan yang mencakup berbagai aplikasi dapat ditemukan
dalam dokumentasi.
Tentang
Proyek ini dibuat oleh Wenzel Jakob.
Fitur-fitur penting dan/atau perbaikan pada kode disumbangkan oleh
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Delio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vincent Leroy, dan
Ziyi Zhang.
Saat menggunakan Mitsuba 3 dalam proyek akademik, harap kutip:
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob dan Sébastien Speierer dan Nicolas Roussel dan Merlin Nimier-David dan Delio Vicini dan Tizian Zeltner dan Baptiste Nicolet dan Miguel Crespo dan Vincent Leroy dan Ziyi Zhang},catatan = {https://mitsuba-renderer.org},versi = {3.1.1},tahun = 2022}