Hook-FAQ: Memahami cara lama dan baru untuk menginstal kait sistem. Hook-FAQ: Memahami cara lama dan baru untuk menginstal Plugin hook sistem untuk cs 1.6 hook

Web di cs1.6 atau hook untuk cs 1.6, sebut saja apa yang Anda inginkan - tetapi ini sudah menjadi plugin yang cukup umum di penghitung Anda. Plugin web itu sendiri di cs memberi Anda kemampuan untuk bergerak di sekitar peta, seolah-olah Anda adalah laba-laba dan terbang dengan jaringan. Artinya, Anda bergerak di web. Pengaturan plugin web di cs1.6 memungkinkan Anda membuatnya tidak hanya untuk admin, atau untuk orang lain, tetapi untuk semua pemain. Tentu saja, jika Anda adalah admin yang jahat, maka plugin web di cs, Anda hanya dapat mengaturnya sendiri. Jadi, memagari noob untuk terbang di sekitar peta seperti daging hidup. Idenya, plugin web di cs ini telah digunakan sejak lama juga di quake2, pada tahun 2001. Dan ini adalah pengait - plugin pengait untuk cs 1.6 diperkenalkan nanti. Tapi itu tidak mengubah suasana.

Cara menggunakan web di cs:
Untuk memulai web di cs1.6, Anda perlu menulis pengikatan kunci di konsol. Misalnya, ambil "r"

Ikat "r" "+ tali"

Setelah itu tekan "r", dan kita bisa terbang seperti laba-laba di web.

Cvars untuk plugin web di cs:

amx_rope - Aktifkan | Nonaktifkan plugin web.
amx_rope_count - Berapa kali Anda dapat menggunakan web per putaran.

Seperti disebutkan di atas, ada plugin lain untuk server cs Anda. Ini adalah pengait pengait untuk cs.
Ini terutama digunakan untuk mod prokreedz untuk mempelajari cara melompat dengan benar.

Cara menginstal pengait plugin untuk cs:
1) Salin file plugin prokreedz_hook.amxx ke dalam kategori cstrike/addons/amxmodx/.
2) Selanjutnya, buka file plugin ( plugins.ini cstrike/addons/amxmodx/configs/) dan menulis di sana prokreedz_hook.amxx untuk membuatnya bekerja.

Cara menggunakan hook di cs:
Ikat tombol ke pengait dan terbang.

Ikat "r" "+ kait"

Itu saja. Anda dapat memilih salah satu dari dua plugin dan menggunakannya untuk bergerak di sekitar peta.

Arsip berisi file plugin web untuk cs1.6, dan file pengait plugin untuk cs

Kami senang menyambut Anda di situs yang didedikasikan untuk salah satu game paling populer di dunia – Serangan balik. Situs kami berisi banyak file berbeda untuk game ini, mod berbeda, tambalan baru, plugin.
Web di Counter Strike 1.6 adalah plugin yang sangat populer. Plugin web itu sendiri memungkinkan Anda menavigasi peta seolah-olah Anda adalah laba-laba dan menavigasi web. Plugin web untuk cs 1.6 dapat tersedia tidak hanya untuk admin, tetapi juga untuk pemain biasa, asalkan pengaturan yang benar. Secara alami, jika Anda adalah administrator jahat, maka Anda akan mengonfigurasi plugin web hanya untuk diri Anda sendiri, sehingga mencegah noob terbang di sekitar peta seperti daging. Ide plugin ini sudah digunakan sejak lama, pada gempa 2 (2001). Plugin hook untuk cs 1.6 diperkenalkan beberapa saat kemudian, tetapi mood itu sendiri tidak berubah dari ini.
Bagaimana cara menggunakan web di cs dengan benar? Dalam cerita kami, kami akan mencoba memberikan jawaban yang tepat untuk pertanyaan ini.
Untuk memulai web di cs 1.6, Anda perlu menulis pengikatan ke kunci tertentu di konsol. Sebagai contoh, mari kita ambil tombol "A".
ikat "A" + tali
Setelah itu, dengan menekan tombol "A", Anda bisa terbang seperti laba-laba.
Untuk perhatian Anda, kami mempersembahkan cvar untuk plugin web di cs:
amx_rope - menyalakan dan mematikan plugin;
amx_rope_count - menunjukkan berapa kali Anda dapat menggunakan web dalam satu putaran.
Ada plugin lain untuk CS Anda - hook. Sebagai aturan, ini digunakan untuk prokreedz-mod untuk mempelajari cara melompat dengan benar (menurut standar permainan).
Untuk menginstal hook untuk CS, Anda memerlukan:
1) Salin prokreedz_hook.amxx ke plugin cstrike/addons/amxmodx/.
2) Buka (plugins.ini cstrike/addons/amxmodx/configs/) dan untuk membuatnya berfungsi, tulis prokreedz_hook.amxx di sana.
Tidak tahu cara menggunakan kail? Sederhana saja, ikat tombol ke kail dan terbang seperti laba-laba - ikat "A" "+ kail".
Kami harap kami telah memberikan jawaban yang jelas untuk semua situs dan pemegang server permainan ke pertanyaan yang sangat populer dan sering diajukan tentang cara menggunakan web dengan benar untuk COP, cara terbang di atasnya. Plugin ini membuka kemungkinan baru untuk game dan membuatnya semakin menarik, terutama karena sangat mudah digunakan! Temukan peluang baru, ikuti Counter Strike terbaru dan pelajari banyak hal baru dan menarik.

Apakah Anda ingin menjadi Black Lord komputer Anda? Apakah Anda ingin mengetahui semua rahasia pengembang malware dan antivirus? Baca artikelnya, renungkan, pahami dasar-dasar Zen, dan semoga pencerahan turun atas Anda (semuanya dengan tenang, pengetahuan Tao dan perforasi Shambhala sebagai hasil membaca artikel ini tidak dijamin oleh editor - catatan red.)!

RTFM

Apa itu kail? Ini adalah mekanisme yang memungkinkan Anda melacak beberapa peristiwa di sistem operasi. Ini dikembangkan oleh paman dari Microsoft dengan niat terbaik - untuk memungkinkan pemrogram menyelesaikan masalahnya secara lebih efisien dengan mengatur kontrol atas peristiwa keyboard, mouse, dan banyak lagi. Itu diimplementasikan menggunakan fungsi-fungsi terkenal: SetWindowsHook(Ex), UnhookWindowsHook(Ex) dan CallNextHook(Ex).

Pengait berfungsi untuk mencegat peristiwa tertentu sebelum mencapai aplikasi. Fungsi ini dapat bereaksi terhadap peristiwa dan, dalam beberapa kasus, mengubah atau membatalkannya. Fungsi yang menerima pemberitahuan peristiwa disebut "fungsi filter" dan berbeda dalam jenis peristiwa yang ditangkapnya. Contohnya adalah fungsi filter untuk menangkap semua peristiwa mouse atau keyboard. Agar Windows dapat memanggil fungsi filter, fungsi ini harus diinstal, yaitu dilampirkan ke pengait (misalnya, ke pengait keyboard). Melampirkan satu atau lebih fungsi filter ke hook disebut pengaturan hook. Jika beberapa fungsi filter dilampirkan ke hook yang sama, Windows mengimplementasikan antrean fungsi, dengan fungsi terlampir terakhir di depan antrean dan fungsi pertama di akhir antrean.

Seiring waktu, konsep mulia tentang pengait diselewengkan, yang penyebabnya adalah tindakan penulis virus dan malware. Virus pertama adalah, bagaimana saya mengatakannya ... naif, saya kira. Mereka adalah file exe terpisah yang langsung menelepon fungsi yang diinginkan sistem. Waktu berlalu dan antivirus, yang muncul beberapa saat kemudian dan tiba-tiba menjadi komersial, dengan cepat belajar menangkap virus dengan tanda tangan hanya dengan memindai memori akses acak atau ruang disk.

Dan di sini, di tengah panasnya perjuangan abadi antara penulis virus dan "penangkap" mereka, ada satu masalah yang masih menjadi agenda dan akan segera terjadi - ini adalah pertanyaan tentang bertahan hidup di sistem operasi. Selain itu, ini juga relevan untuk antivirus, karena untuk pemrogram sistem yang baik yang menulis virus / rootkit, menghapus proses antivirus dari sistem bukanlah tugas yang sangat sulit.

Oleh karena itu, kami dapat dengan aman mengatakan bahwa salah satu tugas antivirus adalah kemampuan untuk menjaga prosesnya tetap utuh dan aman dari tindakan jahat virus. Secara umum, saat ini, hook harus dipahami sebagai membangun kendali atas main fungsi sistem sistem operasi, di mana kelangsungan hidup program apa pun bergantung - kita berbicara, sebagai aturan, tentang fungsi bekerja dengan proses, utas, jaringan dan Internet, dll.

"Tapi bagaimana dengan SetWindowsHook?" - kamu bertanya padaku. "Abad terakhir," jawabku. Tidak lagi halal untuk menggunakannya.

Apa yang kita miliki?

Cara termudah untuk memasang pengait di sistem adalah dengan membuat apa yang disebut fungsi proxy. Dengan kata lain, Anda perlu memutuskan fungsi mana yang Anda sadap dan menemukan alamat panggilannya. Untuk melakukan ini, fungsi GetProcAddress biasanya digunakan seperti ini: GetProcAddress(GetModuleHandle("ntdll.dll"), "CsrNewThread").

Namun, orang yang tercerahkan tahu bahwa itu hampir selalu dicegat oleh avers, dan untuk menemukan alamat fungsinya, mereka menggunakan penguraian tabel impor perpustakaan tertentu, biasanya ntdll.dll, kernel32.dll (kernelbase.dll di Windows7 ) atau advapi32.dll.

int MyNewFunction(batal *param1,
int param2, bool param3)
{
kembalikan OriginalFunction(param1,
param2, param3);
}

Setelah itu, Anda harus menimpa alamat panggilan OriginalFunction dengan milik Anda - yaitu, dengan MyNewFunction.

Sekarang, jika seseorang ingin memanggil OriginalFunction untuk dieksekusi, fungsi proxy Anda MyNewFunction akan dipanggil terlebih dahulu, yang kemudian akan mentransfer kontrol ke alamat aslinya. Mungkin 8 kait dari 10 bekerja dengan cara yang begitu sederhana.Metode ini nyaman hanya karena kesederhanaannya, tetapi pada saat yang sama metode ini sangat merugikan bagi para pecinta. Bagaimana? Pikirkan sendiri - yang dibutuhkan aver hanyalah membandingkan alamat fungsi yang "sah" sebelumnya dengan yang sebenarnya. Jika mereka berbeda, kami membunyikan alarm. Omong-omong, pertanyaan selanjutnya muncul: di mana mendapatkan alamat dari fungsi aslinya ini? Tidak perlu menebak terlalu banyak - ini dibaca dari file yang diinginkan di disk. Pendekatan ini didasarkan pada asumsi bahwa virus tidak akan menambal tabel ekspor file pada disk, membatasi dirinya pada tambalan memori virtual.

Jadi mari kita lanjutkan. Seperti yang saya katakan, menggunakan pengait sebagai fungsi proxy, meskipun hal yang nyaman, pertama, coklat kekuningan, dan kedua, ini hanya cocok untuk pemula. Itu bukan untukmu :). Jenis pengait yang paling umum adalah penyambungan. Saya yakin Anda sudah sering mendengar kata ini. Dalam kasus kami, ini adalah catatan di awal fungsi urutan lima byte, yang merupakan perintah jmp di alamat penangan intersepsi. Di sini byte pertama adalah opcode jmp, empat byte sisanya adalah alamat fungsi Anda.

Jika Anda perlu memanggil fungsi yang dicegat, maka sebelum menggantinya, Anda harus menyimpan byte awalnya dan memulihkannya sebelum menelepon. Kekurangan metode ini terdiri dari yang berikut: jika, setelah memulihkan awal fungsi, terjadi peralihan konteks ke utas aplikasi lain, maka ia akan dapat memanggil fungsi tersebut, melewati pencegat. Kekurangan ini dapat diperbaiki dengan menghentikan semua utas samping aplikasi sebelum panggilan, dan mulai setelah panggilan. Dan tentu saja, penyambungan, seperti fungsi proxy, juga mudah dideteksi dengan metode pemindaian memori, karena akan segera terlihat jelas bahwa pemanggilan fungsi pergi ke tempat lain.

Secara umum, ke depan, saya harus menyampaikan kepada masyarakat umum bahwa hampir semua metode intersepsi panggilan fungsi entah bagaimana terdeteksi oleh pemindaian memori. Dengan pengecualian dua metode, tetapi bacalah di bawah ini.

IAT, EAT dan binatang buas lainnya

Timbul pertanyaan: apa dan, yang terpenting, di mana Anda bisa meletakkan pengait? Hal pertama yang terlintas dalam pikiran tentu saja menempatkan intersepsi pada Tabel Alamat Impor (IAT). Saat aplikasi menggunakan fungsi dari pustaka, aplikasi harus mengimpor alamat fungsi tersebut. Setiap DLL yang digunakan oleh aplikasi dijelaskan dalam struktur yang disebut IMAGE_IMPORT_DESCRIPTOR. Struktur ini berisi nama DLL yang fungsinya diimpor oleh aplikasi dan dua penunjuk ke dua larik struktur IMAGE_IMPORT_BY_NAME. Struktur IMAGE_IMPORT_BY_NAME berisi nama fungsi yang diimpor yang digunakan oleh aplikasi.

Kapan sistem operasi memuat aplikasi ke dalam memori, struktur IMAGE_IMPORT_DESCRIPTOR dibaca, dan setiap DLL yang diperlukan dimuat ke dalam memori aplikasi.
Setelah DLL dipetakan, sistem operasi menempatkan setiap fungsi yang diimpor di memori dan menimpa salah satu larik IMAGE_IMPORT_BY_NAME dengan alamat eksekusi fungsi.

Setelah pengait muncul di ruang alamat aplikasi, virus Anda akan dapat membaca format PE aplikasi target di memori dan mengganti alamat target fungsi di IAT dengan alamat pengait. Kemudian ketika fungsi hooked dipanggil, fungsi hook Anda akan dieksekusi, bukan fungsi aslinya. Opsi yang sedikit lebih jarang terjadi di alam, diimplementasikan sesuai dengan prinsip "Jika gunung tidak pergi ke Magomed ..." - intersepsi Tabel Alamat Ekspor (EAT), ketika, sebaliknya, tabel ekspor Dll ditambal , yang mengekspor fungsi target.

STELTH Hooks: Tangkap Saya Jika Anda Bisa

Seperti yang saya tulis di atas, kelemahan utama dari metode intersepsi di atas adalah modifikasi memori secara paksa, yang pasti mengarah pada pendeteksiannya oleh avers. Apakah ada jalan keluar? Anehnya, ada. Bahkan dua. Yang pertama adalah mendaftarkan penangan pengecualian Anda, lalu minta kontrol. Ini bisa dilakukan, misalnya dengan kehilangan sebagian area memori. Metode kedua adalah yang pertama sedikit dimodifikasi. Artinya, Anda, seperti sebelumnya, mendaftarkan penangan pengecualian, tetapi untuk membuatnya, Anda menggunakan teknik yang dikenal di antara para debugger. Seperti yang Anda ketahui, register debug prosesor digunakan untuk aplikasi debug dan biasanya tersedia dari kernelmod. Namun, mereka juga dapat diatur dari aplikasi mode pengguna menggunakan fungsi GetThreadContext/SetThreadContext. Register debug digunakan untuk mengatur breakpoint (Breakpoints) pada akses ke lokasi memori atau eksekusi.

Total ada delapan register, tujuannya adalah sebagai berikut:

  • DR0 - DR3 - Masing-masing register ini berisi alamat linear dari salah satu dari empat titik kontrol. Jika paging diaktifkan, nilainya diterjemahkan ke alamat fisik sesuai dengan algoritme umum;
  • DR4 - DR5 - Register dicadangkan dan tidak digunakan dalam prosesor i486;
  • DR6 - Daftar status debug. Ini melaporkan kondisi yang ditemui saat melempar pengecualian debug (nomor 1). Register bit diatur oleh perangkat keras dan diatur ulang oleh perangkat lunak;
  • DR7 - Register menentukan jenis akses memori yang terkait dengan setiap pos pemeriksaan.

Jadi, yang perlu Anda lakukan hanyalah menyetel breakpoint perangkat keras (alias int 1) di awal fungsi, sehingga prosesor akan menghasilkan apa yang disebut "pengecualian satu langkah" (pengecualian satu langkah) dan kemudian, dengan menyetel penangan pengecualian sendiri: AddVectoredExceptionHandler (0, (PVECTORED_EXCEPTION_ HANDLER)DebugHookHandler), kaitkan EXCEPTION_SINGLE_STEP yang sama ini.

Saat dihasilkan, penangan Anda akan mengendalikan fungsi yang diinginkan. Keuntungan yang tidak diragukan lagi dari metode ini adalah metode ini sama sekali tidak terdeteksi oleh pemindaian memori, karena modifikasinya tidak terjadi di sini.

int SetDebugBreak (alamat FARPROC)
{
status int = -1;
HANDLE thSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPTHREAD, NULL);
THREADENTRY32te;
te.dwUkuran = sizeof(THREADENTRY32);
Thread32First(thSnap, &te);
Mengerjakan
{
jika(te.th32OwnerProcessID != GetCurrentProcessId())
melanjutkan;
MENANGANI hThread = OpenThread(
THREAD_ALL_ACCESS, FALSE, te.th32ThreadID);
KONTEKS ctx;

GetThreadContext(hThread, &ctx);
jika(!ctx.Dr 0)
{
ctx.Dr0 = MakePtr(ULONG, alamat, 0);
ctx.Dr7 |= 0x00000001;
keadaan = 0;
}
lain jika(!ctx.Dr1)
{
ctx.Dr1 = MakePtr(ULONG, alamat, 0);
ctx.Dr7 |= 0x00000004;
keadaan = 1;
}
lain jika(!ctx.Dr2)
{
ctx.Dr2 = MakePtr(ULONG, alamat, 0);
ctx.Dr7 |= 0x00000010;
keadaan = 2;
}
lain jika(!ctx.Dr3)
{
ctx.Dr3 = MakePtr(ULONG, alamat, 0);
ctx.Dr7 |= 0x00000040;
keadaan = 3;
}
kalau tidak
keadaan = -1;
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
SetThreadContext(hThread, &ctx);
CloseHandle(hThread);
}
while(Thread32Next(thSnap, &te));
status pengembalian;
}

Kesimpulan

Seperti yang Anda lihat, bahkan dalam situasi yang paling sulit sekalipun, Anda dapat menemukan peluang untuk mengeksekusi kode Anda. Saya yakin bahwa dalam hal ini kode Anda ditujukan semata-mata untuk memecahkan masalah perlindungan sistem Anda. Semoga berhasil dan selamat menyusun!

Tautan

http://vx.netlux.org - semacam museum virus, mesin virus, dan hal menarik lainnya. Harus mengunjungi, singkatnya.

Karena banyak orang menulis kepada saya dan menanyakan kapan Hook adalah versi final, saya memutuskan untuk menulis sebuah hook, tetapi bukan Ar4Mode.
Saya memutuskan untuk tidak mengacaukan hook lama saya (karena kodenya sangat buruk), jadi saya memutuskan untuk menulis yang baru. Dengan beberapa perubahan.

Ada pengait di arsip untuk: Ar4Mode, JBE, UJBL, JBM, serta untuk mod lainnya (tetapi tidak ada native yang digunakan).
Ada juga pengait tanpa menyimpan (Anda perlu mengubahnya di plugins-iHOOK.ini).

Perbedaan dari hook lama:
[-] Pengaturan warna pengait.
[+] Menyimpan dengan basis data (MsQl).
[+] Melalui pengaturan file: kecepatan, ketik. ukuran, akhir sprite.
[+] Anda dapat mengatur pengait tertentu ke bendera tertentu.
[+] Melalui pengaturan bendera file: jaring laba-laba/menu/kontrol/shutdown.
[+|-] Perubahan visual.
[+] Menambahkan sprite/suara baru (walaupun Anda bisa melakukannya sendiri).
[+] Melalui file tersebut, Anda dapat mengatur jenis ujung pengait (scatter atau single sprite).
[+] (JBE) Anda dapat memilih kapan ingin dari siapa kail akan diambil (dari semua orang atau hanya dari orang yang ada di daftar orang yang dicari).
[+] Kode bagus.

Perintah konsol:
1) katakan / kail - menu web
2) +kait / +tali - aktivasi jaring

Pribumi:
native_iHOOK_menu(id) - buka menu.
native_iHOOK_get_hook_sett(id, iType) - dapatkan pengaturan pengait [ iType: 1 - web sprite / 2 - sound / 3 - web end sprite / 4 - size / 5 - look / 6 - speed ]
bool:native_iHOOK_get_hook_player_have(id) - dapatkan keberadaan pengait.
================================================================



Memuat...
Atas