Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Bu şekilde daha iyi direk string referansı ile bulunması engelleniyor ama yine MsgBox fonksiyonlarına breakpoint atıldığında görünüyor, yine de daha fazla string obfuscation yapmak isteyen xor obfs kullanabilir (re edildiğinde yine detaylı arayan mesajı bulacaktır kesin çözüm değil kesinlikle):böyle ne dersin?
void ShowClientNameError()
{
const char msg[] = {
'C', 'l', 'i', 'e', 'n', 't', ' ',
'y', 'a', 'n', 'l', 'ı', 'ş', ' ',
'i', 's', 'i', 'm', 'l', 'e', ' ',
'ç', 'a', 'l', 'ı', 'ş', 't', 'ı', 'r', 'ı', 'l', 'd', 'ı', '!', '\0'
};
dbg.LogBox(msg);
}
void ShowClientNameError()
{
char msg[] = {
'K' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, // etc.
'\0'
};
for (int i = 0; msg; ++i)
msg ^= 0x2;
dbg.LogBox(msg);
}
for (int i = 0; msg; ++i) ve msg ^= 0x2; olmazBu şekilde daha iyi direk string referansı ile bulunması engelleniyor ama yine MsgBox fonksiyonlarına breakpoint atıldığında görünüyor, yine de daha fazla string obfuscation yapmak isteyen xor obfs kullanabilir (re edildiğinde yine detaylı arayan mesajı bulacaktır kesin çözüm değil kesinlikle):
void ShowClientNameError()
{
char msg[] = {
'K' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, // etc.
'\0'
};
for (int i = 0; msg; ++i)
msg ^= 0x2;
dbg.LogBox(msg);
}
void ShowClientNameError()
{
char msg[] = {
'K' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, 'j' ^ 0x2, 'm' ^ 0x2, ' ', 'q' ^ 0x2, 'c' ^ 0x2, 'm' ^ 0x2, 'k' ^ 0x2, 'g' ^ 0x2, 'n' ^ 0x2, 'm' ^ 0x2, ' ', 'h' ^ 0x2, 'q' ^ 0x2, 'j' ^ 0x2, 'm' ^ 0x2, 'l' ^ 0x2, ' ', 'ç' ^ 0x2, 'ğ' ^ 0x2, 'm' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, 't' ^ 0x2, 'ı' ^ 0x2, 'r' ^ 0x2, 'ı' ^ 0x2, 'l' ^ 0x2, 'd' ^ 0x2, 'ı' ^ 0x2, '!', '\0'
};
for (int i = 0; msg != '\0'; ++i)
msg ^= 0x2; // XOR’u geri alıyoruz
dbg.LogBox(msg);
}
bu şekilde ozaman
Evet ama unutulmaması gereken nokta sadece yeterince kararlı biri tersine mühendislikle çözebilir her zaman biz sadece zorlaştırmış oluyoruz, günün sonunda cpu instructionları bilmeli buna göre program çalışıyor, debugger ile instructionları inceleyen biri de binary’i reverse edebilirfor (int i = 0; msg; ++i) ve msg ^= 0x2; olmaz
void ShowClientNameError()
{
char msg[] = {
'K' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, 'j' ^ 0x2, 'm' ^ 0x2, ' ', 'q' ^ 0x2, 'c' ^ 0x2, 'm' ^ 0x2, 'k' ^ 0x2, 'g' ^ 0x2, 'n' ^ 0x2, 'm' ^ 0x2, ' ', 'h' ^ 0x2, 'q' ^ 0x2, 'j' ^ 0x2, 'm' ^ 0x2, 'l' ^ 0x2, ' ', 'ç' ^ 0x2, 'ğ' ^ 0x2, 'm' ^ 0x2, 'n' ^ 0x2, 'k' ^ 0x2, 't' ^ 0x2, 'ı' ^ 0x2, 'r' ^ 0x2, 'ı' ^ 0x2, 'l' ^ 0x2, 'd' ^ 0x2, 'ı' ^ 0x2, '!', '\0'
};
for (int i = 0; msg != '\0'; ++i)
msg ^= 0x2; // XOR’u geri alıyoruz
dbg.LogBox(msg);
}
bu şekilde ozaman
Paylaşım için teşekkürler.Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 489
- Cevaplar
- 9
- Görüntüleme
- 1K
- Cevaplar
- 33
- Görüntüleme
- 3K