ScreenLogger - senyum, Anda difilmkan oleh kamera tersembunyi

Jadi, selamat datang. Pada artikel ini, kami akan menganalisis proses penulisan program yang memungkinkan pemantauan real-time dari semua tindakan yang terjadi pada komputer jarak jauh, tanpa sepengetahuan pengguna akhir. Penulis artikel ini memperingatkan bahwa ia tidak bertanggung jawab atas penyalahgunaan teknologi berikut secara tidak sah dan tidak merekomendasikan menggunakannya untuk tujuan ilegal. Ayo pergi!

Saat menulis produk perangkat lunak yang cukup besar, Anda perlu membagi tugas global menjadi beberapa yang lebih sederhana. Jadi dalam hal ini, saya telah mengidentifikasi beberapa proses yang praktis tidak berhubungan yang, bekerja sama, memungkinkan kami untuk mencapai hasil yang diinginkan. Secara khusus, untuk melaksanakan tugas itu perlu diwujudkan

0) Menambahkan file layanan saat dijalankan pertama kali ke folder sistem
1) Ambil tangkapan layar dari layar
2) Kirim tangkapan layar ke server jarak jauh

Dengan demikian, platform .NET dipilih untuk implementasi, yang memiliki semua fungsi yang diperlukan. Aplikasi ini ditulis dalam WindowsForms untuk keperluan visualisasi dan debugging, pada umumnya bisa menjadi konsol.

Deskripsi fungsi:

SetConfig - menyediakan parameter konfigurasi pembacaan dari file pengaturan terlampir
Kirim - bertanggung jawab untuk mengirim tangkapan layar ke email
MakeScreen - bertanggung jawab untuk mengambil tangkapan layar
Circle - bertanggung jawab untuk mengulang pengambilan dan mengirim tangkapan layar di latar belakang pada frekuensi yang ditentukan
CasualStart - mendefinisikan tindakan pada peluncuran program selanjutnya
FirstStart - memastikan instalasi program yang benar

Sekarang - sedikit lebih detail pada masing-masing fungsi. Pengaturan konfigurasi:

Karena perangkat lunak harus fleksibel, harus dimungkinkan untuk mengubah parameter internal program dari luar kode. Di setiap awal, perangkat lunak ini mencoba menemukan file SaveScreen.ini, memperbarui pengaturannya, dan baru mulai bekerja seperti biasa. Dalam kasus ketika tidak mungkin untuk memperbarui parameter, nilai-nilai standar digunakan.

(parameter mana yang bertanggung jawab atas apa yang akan terjadi di akhir artikel)

Untuk alasan teknis, alih-alih spasi, saya harus menggunakan garis bawah, dan bukannya @ - #, tetapi di dalam program penggantian terbalik dilakukan.

Eksekusi program dimulai di blok Form1_load, dan dapat berkembang dalam dua mode - peluncuran normal (jika komputer memiliki direktori instalasi) dan instalasi (jika tidak ada direktori instalasi). Mari kita pertimbangkan masing-masing.

Jalankan pertama:
Pada awal pertama, Anda perlu membuat direktori di mana file program akan ditempatkan, mentransfer file yang dapat dieksekusi dan file konfigurasi di sana, serta menambahkan entri yang diperlukan ke registri untuk menambahkan perangkat lunak ke autorun.

Dengan demikian, ini diimplementasikan oleh fungsi FirstStart ()

gambar

Setelah instalasi, aplikasi ditutup - saat berikutnya Anda me-restart komputer, itu akan berfungsi seperti biasa.

Peluncuran reguler:
Peluncuran reguler memulai utas latar belakang yang mengambil tangkapan layar dan mengirimkannya, serta menghapus folder dengan tangkapan layar yang diambil selama sesi terakhir. Setelah itu, ia menunggu beberapa saat sebelum penghentian aplikasi secara paksa. Sebelum memulai utas latar belakang, jeda dimungkinkan, yang harus ditetapkan pada komputer yang relatif lambat untuk mempercepat pemuatan sistem dan tidak adanya konflik saat startup.
asualStart ()

gambar

Sirkulasi:
Semuanya membosankan untuk dipermalukan - dalam siklus abadi kita mengambil dan mengirim tangkapan layar, setelah itu kita menunggu waktu yang ditentukan. Urutan besarnya lebih menarik adalah proses mengambil dan mengirim layar.

gambar

Ambil tangkapan layar:
Dalam C #, dimungkinkan untuk menyimpan gambar dalam bitmap dengan menggunakan fungsi salin dari layar. Oleh karena itu, semua yang perlu dilakukan adalah membuat objek untuk menyimpan tangkapan layar dengan resolusi yang sama dengan resolusi layar saat ini, melampirkan objek padanya yang dapat menerima bitmap dari layar dan menyimpannya ke direktori yang dibuat sebelumnya.

gambar

Mengirim melalui surat:
Dalam C #, dimungkinkan untuk bekerja dengan surat menggunakan kelas yang telah ditentukan yang memungkinkan Anda untuk mengisi bidang pesan, menentukan penerima dan penerima, dan, pada kenyataannya, mengirim dengan memanggil satu metode. Bungkus metode ini dalam blok try-catch jika tidak ada koneksi jaringan - bahkan dalam kasus ini, program tidak akan memberikan pesan kesalahan, tetapi akan dengan patuh menunggu sampai memiliki kesempatan untuk mengakses server. Server email dipilih karena alasan kesederhanaan, pada prinsipnya - Anda dapat melempar gambar ke mana saja.

gambar

Interaksi umum:
Peluncuran program, saya ulangi, dilakukan dalam metode Form1_Load. Program mencoba memperbarui konfigurasi, kemudian menentukan apakah itu diluncurkan untuk pertama kali, jika demikian, ditambahkan ke folder yang benar dan masuk ke startup dan dinonaktifkan, dan jika tidak, ia memulai proses latar belakang yang secara stabil melempar gambar dari layar ke server mail pada interval tertentu. Tidak ada yang rumit atau tidak biasa, hanya interaksi beberapa kelas bawaan.
gambar

Dan, akhirnya, penjelasan tentang file konfigurasi otomatis - semua nama variabel bertepatan dengan nama-nama dalam program, oleh karena itu, menjelaskan bidang-bidang dalam file int, saya juga menjelaskan variabel-variabel itu sendiri.

gambar

wayToDir - nama subfolder tempat tangkapan layar dijatuhkan
finalDir = -nama direktori tempat program ditransfer
nameOfApp = nama file yang dapat dieksekusi
subKeyAdress = path ke entri registri untuk ditambahkan ke autorun
bidang yang dipesan - dipesan
nama - nama entri registri
startPause - jeda sebelum merekam tangkapan layar
exitPause - jeda sebelum keluar secara paksa dari program
adressFrom - alamat pengirim
nameFrom - tanda tangan pengirim
nameTo - alamat surat penerima
mailSubject - Subjek email
mailBody - teks pesan
smtpAdress - alamat SMTP server pengirim
smtpPort - port untuk mengirim email
mailPassword - kata sandi dari surat pengirim
ekstensi file
timeBetweenScreens –waktu antara mengambil dua tangkapan layar.

Singkatnya:

Proses penulisan aplikasi untuk melacak tindakan pada komputer jarak jauh baru saja dijelaskan. Dengan menghubungkan di sini menerima file dengan daftar perintah dari server dan membaginya, kami mendapatkan TeamViewer yang ditulis sendiri secara sederhana. Tetapi ini tidak ada dalam artikel ini.

Kode sumber

Source: https://habr.com/ru/post/id457172/


All Articles