Halo, Habr! Di masa-masa sulit, kita hidup, bukan? Orang-orang egois, tidak mengakui nilai karya orang lain, suka datang ke segala sesuatu yang siap sekaligus. Kekayaan intelektual bagi banyak orang pada umumnya tidak lebih dari lelucon birokrasi: "Bagaimana mungkin informasi itu gratis, karena ini adalah IN-FOR-MA-QI-I !!! 11". Saya setuju, idealnya begitu. Anarki Anda ini, suasana hati yang memberontak dan filosofi peretas / pembajak bawah tanah, yang menjaga hak-hak orang biasa, tidak asing bagi saya. Tetapi paradoksnya adalah bahwa keadilan sejati juga untuk membayar semua orang atas pekerjaan dan jasa mereka, sehingga dalam banyak kasus pembajakan adalah usaha yang antagonistik. Tapi di sini kebijakan penyediaan layanan untuk perlindungan kekayaan intelektual, yang diusulkan oleh vendor yang luar biasa seperti InfoProtector, membuat saya marah.
Di bawah potongan, kisah tentang bagaimana saya membeli kursus video berbayar jatuh ke dalam endapan setelah menyadari bahwa saya tidak dapat menyimpan video dari itu untuk ditonton kembali di masa depan, saya marah pada mereka yang telah menyembunyikan perangkat lunak pelindung semu ini (yang, antara lain, tanpa ampun ketinggalan dan makan banyak sumber daya mesin) dan memutuskan untuk mengembalikan keadilan sedikit ... Tanpa melanggar hukum, tentu saja. Amin
PENOLAKAN. Semua yang berikut ini telah diterbitkan untuk tujuan penelitian dan dimaksudkan untuk memenuhi fungsi pendidikan secara eksklusif. Penulis tidak bertanggung jawab atas penggunaan informasi yang melanggar hukum dari pos ini dan dalam hal apapun tidak mendesak untuk menganggapnya sebagai "panduan untuk bertindak."
Bagaimana itu?
Itu adalah akhir pekan gratis, dan saya memutuskan untuk mengeluarkan XXXX p yang diterima dengan jujur. pada kursus video lima jam. Kami akan menyebutnya "Kursus penyegaran untuk pekerja katering" sehingga tidak ada persamaan. Secara umum, saya bukan pendukung persepsi informasi melalui pelajaran video (oh, sangat kontraproduktif), tetapi saya tidak bisa langsung menolaknya - saya menjadi korban spanduk iklan berwarna.
Saya membayar, sebuah surat terbang ke surat yang berisi tautan untuk mengunduh materi yang ditemukan (tautan) oleh pengacak InfoProtector dan meludahkan ke CDN terdekat. Dalam isi surat tersebut adalah rasa terima kasih penulis untuk pembelian dan kunci pendaftaran, yang mengusulkan untuk mengaktifkan pembelian.
Unduh arsipnya. Folder arsip. File yang dapat dieksekusi ada di folder.
Dalam file yang dapat dieksekusi adalah telur. Saya meluncurkan exe'shnik - di sinilah mereka menyampaikan kepada saya seluruh kebenaran, yang dalam menceritakan kembali gratis terdengar seperti ini (baca dengan suara sengau):
InfoProtector, mekanisme perlindungan informasi digital, telah diterapkan pada kursus video ini; untuk peluncuran pertama (baca “aktivasi produk”) Anda memerlukan akses Internet; menonton video hanya dimungkinkan dari program kami, dari pemutar kami; pemasangan kursus video hanya dimungkinkan pada dua komputer (kursus video terkait dengan konfigurasi lingkungan OS / perangkat keras, seperti yang terjadi kemudian).
Pada titik ini, saya sedikit kesal. Yaitu, mereka tidak hanya memanggil saya langsung dari pintu orang yang tidak jujur yang hanya akan dirampas dari pekerjaan monetisasi orang lain, tetapi tingkat di mana saya membayar jumlah yang layak akan tersedia bagi saya hanya sampai sistem diinstal ulang.
"Itu tidak akan berhasil," aku memutuskan dan memulai serangkaian percobaan.
Batasan InfoProtector
Agar tidak membuang-buang waktu dengan sia-sia, untuk permulaan saya beralih ke World Wide Web untuk mengetahui bahwa orang-orang sudah mengetahui tentang mekanisme perlindungan orang-orang ini (semua seluk-beluk pekerjaan perlindungan, tentu saja, tidak diungkapkan).
Apa yang berhasil saya ketahui:
- Kunci aktivasi dihasilkan secara acak ketika membayar kursus dan digunakan untuk menjadi server yang diautentikasi, yang, jika berhasil, mengirimkan klien kunci AES untuk mendekripsi materi video yang tersedia dari pemutar kustom perusahaan. Membalik aplikasi itu lama dan memakan waktu (mis., Tidak praktis untuk tugas semacam ini), jadi saya memutuskan untuk meninggalkan jalan ini.
- Penggunaan alat perekam layar diblokir dengan kejam di sejumlah arah: Anda tidak dapat secara bersamaan meluncurkan pemain dan penangkap layar apa pun pada host yang sama, karena program mendeteksi proses yang sedang berjalan dengan metadata mereka: nama judul jendela; deskripsi file yang dapat dieksekusi; nama-nama vendor yang dijahit ke dalam aplikasi tangkap exe'shniki; bahkan browser dibuka pada halaman yang namanya mengandung kata "Fraps", misalnya, juga menjadi subjek peringatan dan penutupan pemain.
- Kotak pasir, mesin virtual, dan streaming konten dari koneksi jarak jauh (rdesktop, RAdmin, TeamViewer) juga bukan pilihan - perangkat lunak pintar dapat mendeteksi mereka selama bertahun-tahun, membunuh dirinya sendiri di setiap kesempatan.
Namun terlepas dari dua poin terakhir, vektor serangan paling nyata tetap merekam layar, yang dapat diimplementasikan dalam beberapa cara:
- Temukan program tangkap yang tidak mengandung kata suar dalam nama / produsen / deskripsi yang tidak diketahui InfoProtector, dan yang, karenanya, tidak akan memicu. Cons: panjang, membosankan dan bukan fakta, yang pada prinsipnya bisa dilakukan.
- Temukan produk sumber terbuka yang memiliki fungsionalitas yang diperlukan dan kompilasi versi tangkapan layar Anda, ganti dalam sumber segala sesuatu yang mungkin mencurigakan bagi InfoProtector secara teori. Cons: lama, membosankan, memakan waktu (biasanya proyek semacam itu agak rumit, terdiri dari ratusan (?) File dan memiliki banyak dependensi dalam sumber, jadi hanya Ctrl-H tidak bekerja, Anda tidak perlu mengeditnya sehingga mimikatz tidak memotong Windows Defender).
- Tulis keputusan Anda pada skrip sesuatu agar tidak mengambil risiko dengan file yang dapat dieksekusi yang dapat dikompilasi dengan sifat yang tidak diketahui (tidak diketahui apa yang akan dikatakan infeksi ini) yang mengimplementasikan fungsionalitas sepele dengan cepat mengambil tangkapan layar dari area layar yang dipilih (untungnya, InfoProtector memungkinkannya) dan menuliskannya secara terpisah sound track, yang ternyata juga sah dan sesederhana mungkin.
Minus dari paragraf ketiga tidak ditemukan, sehingga Anda dapat melanjutkan.
Tangkapan Layar Planet!
Pertama: mari kita cari tahu cara mengotomatiskan proses membuat awan tangkapan layar menggunakan skrip. Tentu saja, ini adalah: Python, dan lebih banyak
OpenCV , dan lebih banyak
MSS , dan lebih banyak
PIL .
Prosesnya sangat sederhana:
- Tetapkan ukuran jendela pemutar sama dengan resolusi video keluaran yang ingin kami miliki (logis untuk memperhitungkan tempat untuk kontrol skrip - jendela dengan terminal, misalnya, yang tidak boleh masuk ke dalam area perekaman). Ini dapat dilakukan dengan perangkat lunak yang luar biasa.
- Kami memposisikan jendela pemain dalam posisi untuk menemukan yang paling mudah untuk dijelaskan pada skrip - sudut kanan bawah layar (saya pikir sistem referensi yang terkait dengan batas layar adalah pilihan yang paling nyaman).
- Mari kita atur skrip yang sudah ditulis (yang akan sedikit lebih rendah) untuk mengambil tangkapan layar area ini.
- Kami tidak menyentuh sistem canggung ini selama seluruh pemutaran video.
Script di bawah spoiler:
fckInfoprotector.py#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Usage: python3 fckInfoprotector.py <WIDTH> <HEIGHT>
import sys
import numpy as np
import cv2
from mss.windows import MSS as mss
from PIL import Image
class Capturer:
def __init__(self, w, h, resolution='1080p', fps=24.975):
if resolution == '1080p':
self.monitor = {
'top': 1080 - h,
'left': 1920 - w,
'width': w,
'height': h
}
elif resolution == '1440p':
self.monitor = {
'top': 1440 - h,
'left': 2560 - w,
'width': w,
'height': h
}
else:
raise ValueError('Unsupported monitor resolution')
self.sct = mss()
self.vid = cv2.VideoWriter(
'output.avi',
cv2.VideoWriter_fourcc(*'XVID'),
fps=fps,
frameSize=(
self.monitor['width'],
self.monitor['height']
)
)
def mainloop(self):
while True:
sct_img = self.sct.grab(self.monitor)
sct_img_size = (sct_img.width, sct_img.height)
img = Image.frombytes(
'RGB',
sct_img_size,
sct_img.rgb
)
frame = cv2.cvtColor(
np.array(img),
cv2.COLOR_BGR2RGB
)
self.vid.write(frame)
if __name__ == '__main__':
if len(sys.argv) != 3:
print(f'Usage: {sys.argv[0]} <WIDTH> <HEIGHT>')
sys.exit()
w, h = (int(x) for x in sys.argv[1:3])
capturer = Capturer(w, h, fps=50.0)
try:
capturer.mainloop()
except KeyboardInterrupt:
print('Interrupted')
: Windows .
Windows 7: -> -> -> -> -> « »:
, :
, , .
VirtualDub.
:
:
, . . . , , 50- ( , )

,

:

, , .
F7! .
? .
-, , . -, , . , .
-, : ( NVIDIA, !), , , , , «», ?
-, : « DVD- !». , . , , ( ), , .
: , , -, (, ), , . , ().
, , – .
-, !