![]() |
Пишем конфигуратор[c++]
Итак, вы написали супер-троя.Трой стучит по стате,непалится антивирусами и т.д. Но вот проблема:каждому юзеру юзающему вашего троя компилить из исходников неудобно! В этой статье я расскажу вам как написать конфигуратор для вашего детища. Всё наше действо будет состоять из 2 частей:
I)Готовим тело троя II)Сам конфигуратор Ok, let`s go! (c) I) Готовим тело троя. Компилим трой. Все параметры для отстука по стату(к примеру) должны заканчиваться и начинаться на '_'(нам это нужно будет)Т.е. Код:
#define host "_megasite.megahost.com_"и "переполнять" там что-то очень нежелательно. К примеру: Сделаем site.com, а у кого-нибудь юзера стата на megasite.jino-net.ru , В итоге у него ничего не будет работать. Теперь я советую переименовать откомпиленый трой в virus.dat(к примеру),чтоб всякие ребята не запускали лишний раз наш ехе. II)Сам конфигуратор. Итак тело у нас в virus.datДалее буду просто приводить куски кода с комментами. Объявем 3 глобальные переменные: Код:
char host[]="site.com";элементарно), поэтому рассмотрим всё на частном случае. Размер body в зависимости от размера файла. Лучше брать размер на 2-3кило больше размера файла.К примеру: вирь весит 15кб размер вы берёте 17000; Далее: Код:
DWORD dwBytesRead ,dw ,size , dw1;Код:
void param(void){Код:
param();//параметра у нас 2 |
Идея интересная, но под стандартный трои конфигураторов имхо дофига. И зачем это в статьи, для этого есть раздел кодинг С++, т.к. кроме исходов здесь больше ничего и нет.
А так если я все правильно понял есть вопросы: 1. "_" - таких символов в исполняемом файле дох... и сочетаний с "s" тоже. 2. А если длина ссылки все-таки больше чем length(host+site)? |
Цитата:
|
Цитата:
В своем трое - 23, правда сочетаний с "s" нет, но имхо это на удачу... По-этому лучше использовать сочетание как минимум из трех редко встречаемых символов (те маленькая сигнатура). |
Ну если и есть такие сочитания, то они походу файла первые. Пробовал на bloodknife`е, моём лоадере, и просто проге вызывающей MessageBox - работает.
|
еще недавно ты называл это билдером ;)
|
Цитата:
Ky3bMu4 За старания +! |
Цитата:
ИМХО за такие статьи убивать надо, чтоб билдить бинарник, изменяя его по шаблону. НЕТ СЛОВ ребята, нет слов |
господи, а почему в конкретную позицию бинарника нельзя писать нужные значения? завел глобальную переменную - и пиши в нее спокойно.
зы нормальный парсинг ехе-файла в общем случае сравним с асм-анализом сего, что крайне не нужно для поставленной задачи. а тут очень опасная реализация: что если функция обьявленная как cdeclaration пойдет на экспорт? |
Блин... во умище... напишите мне кто-нибудь задачку на C++ а то я в нем не шарю, а сдать надо. горит :)
|
Настройки можно писать оверлеем\в новую секцию\между заголовком и первой секцией\в mz-заголовок в дос-стаб. Не стоит делать так, как сделал ты. Это маразм первой категории.
|
Цитата:
А вообще, уж лучше билдер тогда писать(оверлей, отдельная секция), чем писать такой конфигуратор. То что сделал ТС, это примитив первой категории, если уж корректно говорить. |
Цитата:
"Маразм крепчал" (С) Вариация Чехова, кажется. Цитата:
|
Цитата:
|
Цитата:
_Great_, Ni0x А как эврестики относятся к оверлеям? |
Нужно думать как эвристик =). Ведь тут особого ума не надо, например эвристик находит секцию ресурсов, начинает анализировать ее, но заместо ресурсов видит левый бинарник, странно неправда ли? Таких примеров можно привести очень много. Насчет оверлея, наверное ни раз играли во флеш игры(exe)? Ну так вот там например бывает, что сам плеер - это основная программа, а непосредственно игра находится в оверлее. Так что ничего против оверлеев эвристик не имеет.
|
| Время: 14:23 |