Windows'ta CreateRemoteThread kullanıyorum ve Linux'ta aynı şeyin mümkün olup olmadığını öğrenmek istiyorum. Bunu Linux'ta yapmak mümkün mü?CreateRemoteThread in Linux
cevap
`#include pthread.h
int pthread_create (void pthread_t * iplik, const pthread_attr_t * öznitelik, boşluk * (* start_routine) (*), void * arg); ile` Derleme ve bağlantı - pthread.
ayrıntı için adam pthread_create bakınızBir iş parçacığı oluşturma, iş parçacığı oluşturma ve bunu uzak bir işlem içine nasıl enjekte edeceğiniz budur. –
Linux üzerinde bunu yapmanın geleneksel yolu ayrı ayrı, sonra onun içine koduyla dinamik kitaplık (bu nedenle) oluşturmak çalışan uygulama içine kütüphanede yüklenmesini zorlamak olurdu . Windows'da CreateRemoteThread
olduğu gibi tek duraklı bir dükkan yoktur.
Yani burada
temel adımları şunlardır: o uzak süreçte yürütmek isteyen kod içeriyor böylece- /a dylib oluşturun.
- Belirtilen dosyayı yükleyen derlemede çok basit bir kod yazın (özellikle this link, bölüm 1'den kopyalayıp yapıştırın).
- Söz konusu yükleyici ASM'yi 2. kod dosyası/uygulamasında bir arabellekte ikili yük olarak yerleştirin. Burada, adım 2'de yazılan ikili yükü çalıştırmak için
ptrace
'u kullanacaksınız; bu, hedef uygulamasının, çalıştırmak istediğiniz gerçek kodu içeren 1. adımda oluşturulan .so üzerinde_dl_open()
numarasını çağırmasını tetikleyecek. Eğer ana pompadan ayrı bir konu çalıştırmak için kodu gerekir, o zaman adımda kodunda 1.Umut bu
pthread_create
kullanmalıdır (the same link verilen örnek, bölüm 2.)
sorunuzu cevaplar. Evet, Windows’dan daha çok yer alıyor; ama eşit derecede iyi çalışmalı. Ayrıca, gelecekteki uzaktan kod enjeksiyon projeleri için adım 2 ve 3'teki kodun tamamını yeniden kullanabilirsiniz.
bu nasıl bir C++ sorusu? –
CreateRemoteThread, C++ kodunda kullanılmış olan bir WINAPI'dir. – CrazyC