Arama butonu
Bu konudaki kullanıcılar: 1 misafir
20
Cevap
897
Tıklama
1
Öne Çıkarma
Şifrelenmiş bir Executable'ı şifresini açmadan çalıştırmak.
G
5 yıl
Yüzbaşı
Konu Sahibi

Teorik olarak yapmak mümkün müdür ?

Şifrelenmiş bir executable'ı şifresini açmadan çalıştıracağım fakat şifrelendiği için çalıştırılamıyor.

Algoritma önerisi : Sistemi yanıltıp executable'ı processlere sokup ondan sonra şifresini çözersem başarılı bir şekilde çalışabilir mi ?

Bu olabilir ise yeni bir crypting yöntemi olabilir.

Şuana kadar Scantime ve Runtime Crypterları araştırdım.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Guest-8F0924900 -- 14 Şubat 2020; 20:5:46 >

O
5 yıl
Onbaşı

diyorsunki ring0 da çalışan bir rootkit var işletim sistemi nt apilerini hook ediyor,
elbetteki, normalde os nin versiyonuna göre apilerinin bellek adresleri sabittir, bunu sanal bellek mantığı sağlıyor, evet sen bir api yi hook ettiğin an bu tespit edilebilir pointer adresi değişiyor çünkü ancak esas olan şudur,

ring0 seviyesinde ilk kancayı atan yetkiyi elinde bulundurur kendini koruyabilirse antivirüsün ona müdehalesini engeller, yeterince ileri seviye yazılmışsa kendinide gizleyebilir, ancak tespit de anti rootkit bulundu mesajını kullanıcıya gösterir,
en üst seviye driver olarak çalışabilmek için os başlangıcında veya os dende önce
devreye girmek gerekir, buralardada güvenli os boot yönetimi uhfi vs devreye giriyor.


https://www.google.com.tr/search?q=ring0&client=opera&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjorNiMqtnnAhUlxMQBHdEODKkQ_AUoAXoECA8QAw&biw=1511&bih=682#imgrc=mWQkBHng9w4yjM





< Bu mesaj bu kişi tarafından değiştirildi okoca55 -- 17 Şubat 2020; 22:35:27 >
Bu mesaja 1 cevap geldi.
O
5 yıl
Onbaşı

< Resime gitmek için tıklayın >

sana windows servislerinden örnek vereyim,
windows hizmet yöneticisindeki her servis esasında registerydeki
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services altında bir anahtardır,
sen çalışan servisi durdur yaptığında servisine durdurma mesajı gider, servis isterse durdurmaya red vererek
bunu bloklayabilir ancak kullanıcı servis durumunuda disabled e çekebilir bu durumda servis durduğunda bir daha çalışmayacakdır, eğer servis kendi registery anahtarını monitor ediyor ise,
start, type gibi anahtarlarını HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servisabc\start|type vs tekrar yazarak sistem başlangıcındaki durumunu 0 layabilir, otomatiğe çekebilir, kullanıcı disabled yapmıştır ancak o ekranı kapatıp açtığında tekrar otomatik görür vs, veya process windows handlerdan pencereye müdehale eder o listbox u disabled e çeker anında.. veya servis usermodda registry fonksiyonlarını regquery regdelete vs hook ediyordur, geriye mmc.exe ye sahte sonuc döndürür, veya process sürekli bellekdeki bildiği adresleri monitor ediyordur, sonuçda biliyorsun tüm ayarlar herşey ramda duran 1 0 ve yazılardan stringden ibaret, direk ram a müdehale eder anında
read,writeprocessmemory vs ile gibi hepside aynı kapıya çıkar.

minerinin cpu gpu kullanımınıda gizliyeceksin öyleyse systemqueryperformanceinformation muydu öyle bir api idi
process kullanımını gösteren uygulamarın taskmngr gibi kullandığı hatırlamıyorum bakmak gerekir, sen driver inda bunları yaptığında, olurda bir hata çıkarsa mavi ekran gelirse, sistem yeniden başlarsa kullanıcı f8 ekranında basitce bilinen en son yapılandırmayı yükle dediğinde senin bu servisler driver lar hepsi geçersiz olur silinirler.

zaman harcadığın konu pek mantıklı işler değil normal kişiler için, devlet için veya mit için çalışmıyorsan,
boşa zaman harcama bunlarla boş işler.
https://0x00sec.org/
şurası sana göre incele güzel konular vardır.

< Resime gitmek için tıklayın >
https://www.youtube.com/watch?v=bSnMNxiLbqU





< Bu mesaj bu kişi tarafından değiştirildi okoca55 -- 18 Şubat 2020; 14:53:43 >


Bu mesajda bahsedilenler: @codforc
G
5 yıl
Yüzbaşı
Konu Sahibi

Elimde bir runtime crypter src'si var ve bu exe'yi şifreliyor ve shellcode.h diye şifrelenmiş byteları içeren bir header dosyası oluşturuyor. Fakat nedense bunu derlerken stack overflow oluyor ve bu hatayı nasıl çözeceğimi bilemiyorum bir kaç yöntem denedim fakat olmadı.


src :https://github.com/jozemberi/PE-Crypter

usage :


1 - *compile xtea.cpp

run xtea.exe path

2 - *compile shellcode_generator.c

run shellcode_generator.exe path


3 - *compile file.cpp

Sorun burada başlıyor. shellcode_generator.c shellcode.h oluşturdu ve file.cpp'nin içinde "shellcode.h" include edilmiş. Fakat file.cpp'yi derlediğimde maalesef stack overflow hatası alıyorum.


not : asm kodu benim değil file.cpp'yi derlediğimde karşıma o geliyor.

< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi Guest-8F0924900 -- 18 Şubat 2020; 21:49:9 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @vonderplanitz , @Requizm , @okoca55 , @Determinist
G
5 yıl
Yüzbaşı
Konu Sahibi

@Determinist Sizin dediğinizi scantime bir crypter ile yaptım. Builder stub'a şifrelenecek exe'yi şifreleyerek yazıyor. Ve bizden bir output path'i istiyor.

cin>>output;
CopyFile("stub.exe", output/*L"Crypted.exe"*/, 0);// Copy stub , so we done need to download a new one each time we crypt


Output'a kopyalanmış Stub.exe'nin resource'sine encrypt edilmiş exe'nin datasını yazıyor.

WriteToResources(output, 10, (BYTE *)file_data.data(), file_data.size());

Ve başarılı bir şekilde sonuçlandığında output olarak file.exe karşıma çıkıyor.

Sonradan file.exe'yi açmak istediğimde bu hatayı alıyorum.

< Resime gitmek için tıklayın >



Çözümünü araştırdım.
https://www.drivereasy.com/knowledge/solved-how-to-fix-0xc0000005-error/

Linkteki denileni yaptım fakat değişen bir şey olmadı.



Sorunun şundan dolayı olduğunu düşünüyorum :

Derlenmiş stub.exe'yi tek çalıştırmak istediğimde bu hatayı alıyorum.


< Resime gitmek için tıklayın >


Bu hatanın çözümünü araştıracağım.

Bir bildiğiniz varsa söylersiniz diye bu sorunları yazdım buraya.

Ama dediğinizi yapabildim. problem yok





< Bu mesaj bu kişi tarafından değiştirildi Guest-8F0924900 -- 22 Şubat 2020; 9:24:55 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Determinist
G
5 yıl
Yüzbaşı

Hocam scantime falan hiç karıştırma, yapacaklarını sırasıyla yazayım öncelikle dosyayı şifrelemeden çalıştır daha sonra şifrelersin

1: file.exe yi stub.exe ismiyle kopyala CopyFile("file.exe", "stub.exe", 0);
2: stub.exe nin sonuna bir string yaz "fStart"
3: şifrelemek istediğin dosyayı oku (calc.exe) stub.exe nin sonuna calc.exe verisini yaz (şifrelemeden).
4: stub.exe yi çalıştır ve kendini okut, daha sonra yazdığın stringi arat

char *p = NULL;
for(int i=0;i<stubsize;++i) //strcmp, strstr ile aratma
if(stubdata[i] == 'f' && stubdata[i+1] == 'S' && stubdata[i+2] == 't' && stubdata[i+3] == 'a' && stubdata[i+4] == 'r' && stubdata[i+5] == 't')
p = stubdata + i + strlen("fStart");
if(p)
{
runPE rp;
GetModuleFileNameA(0, LPSTR(szFilePath), 1024);
rp.run(szFilePath, p);
}


Test etmedim sadece mantığı yazmaya çalıştım.

Size önerim linkteki ekitabı okuyunhttps://gofile.io/?c=47BrVf

Temelde bazı problemler gördüm bende sizin gibi amatörüm yanlış anlamayın linkteki e-kitap kafanızdaki bir çok soruyu cevaplayacak.

Edit: for döngüsünün yanında uyarı yapmıştım kendim aynı hataya düşmüşüm strlen("fStart"); //"strcmp, strstr ile aratma"

Sebep şu; dosyada "fStart" stringini ararken ilk bulacağı p = stubdata + i + strlen("fStart"); daki "fStart" olacak bunun yerine (strlen("fStart");) string boyutunu el ile yaz p = stubdata + i + 6;





< Bu mesaj bu kişi tarafından değiştirildi Guest-4D62BFE91 -- 23 Şubat 2020; 1:34:50 >


Bu mesajda bahsedilenler: @codforc
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.