eXeL@B —› Программирование —› Вопрос по базонезависимому коду [c++] |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 17 января 2013 02:56 · Поправил: _or_75 · Личное сообщение · #1 Вообщем есть такой вопрос можно ли считать это базонезависимым кодом ? Code:
И можно ли его как нибудь превратить в shell код и запустить его примерно такого ввида Code:
если да то как? |
|
Создано: 17 января 2013 03:50 · Личное сообщение · #2 |
|
Создано: 17 января 2013 04:04 · Личное сообщение · #3 hors пишет: Несколько смущает strcmp. Необходимо написать свой аналог( это нетрудно). ну это не проблема например так: Code:
а по вопросу так можно ли как нибудь это дело провернуть? да и как из этого shell код вытянуть? |
|
Создано: 17 января 2013 05:26 · Личное сообщение · #4 |
|
Создано: 17 января 2013 05:55 · Личное сообщение · #5 daFix пишет: Код базозависим как минимум потому что в вашем коде есть строки, адрес которых жёстко вбит в код. Да и вообще, shell код как правило используется в вирусных технологиях. Не засранчика ли вы пишете, уважаемый? Нет, хотя да , но чисто для себя чтоб не забыть, ну а на виртуалке все дело тщательно протестировать. |
|
Создано: 17 января 2013 08:24 · Личное сообщение · #6 |
|
Создано: 17 января 2013 10:37 · Личное сообщение · #7 |
|
Создано: 17 января 2013 10:41 · Личное сообщение · #8 |
|
Создано: 17 января 2013 17:18 · Личное сообщение · #9 |
|
Создано: 17 января 2013 17:22 · Личное сообщение · #10 |
|
Создано: 17 января 2013 17:22 · Поправил: Hexxx · Личное сообщение · #11 reversecode пишет: что то я не помню что бы форум был помошником новичкам в написании всякой вирус хрени и да, байтонезависимый код ненужен тчк Я понимаю, что чаще всего этой хренью интересуются для написания вирей. Но так, чисто гипотетически, если человек хочет бороться с эксплоитами и нуждается в шелкоде для тестов. Откуда он должен получать знания? ----- Реверсивная инженерия - написание кода идентичного натуральному | Сообщение посчитали полезным: _or_75, sys_dev |
|
Создано: 17 января 2013 17:50 · Поправил: reversecode · Личное сообщение · #12 Hexxx вам надо было по чаще посещать wasm, ой! там сколько новичков которые хотя научится боротся с эксплоитами! просто диву даешься каждый первый новичек так и пилит очередной антивирус протов других антивирусов, ну ясно дело где им теперь учится когда wasm ..... Hexxxа откуда получил эксперт эти знания? у другого эксперта? а тот у кого? итд, получается что бы получить некие знание нужно просто мозг повернуть? либо родится гением которые знает ответы на все вопросы? другого недано? |
|
Создано: 17 января 2013 19:37 · Поправил: Hexxx · Личное сообщение · #13 Ответ на вопрос откуда нормальный человек должен получать такие знания я так и не получил. В моем конкретном случае: я участвовал в одном проекте, где ловили малварь проникающую через эксплоиты. И там мне пришлось столкнуться с подобной проблемой. И только благодаря тому, что там на проекте был свой эксперт я смог вникнуть в тему. Мозг в определенную сторону должен провернуться, чтобы понять это дело. А вот самому не представляю сколько так проворачивать придется, читая всякий бред в инете. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 17 января 2013 20:45 · Поправил: OnLyOnE · Личное сообщение · #14 |
|
Создано: 17 января 2013 21:05 · Личное сообщение · #15 Заканчивайте с оффтопом. Не вижу ничего страшного, что он хочет вызвать MessageBox из базонезависимого кода. До нормального вируса тут примерно как от надувания колеса велосипеда до ручной сборки мерседеса. | Сообщение посчитали полезным: ClockMan |
|
Создано: 17 января 2013 22:34 · Поправил: _or_75 · Личное сообщение · #16 Archer пишет: Заканчивайте с оффтопом. Не вижу ничего страшного, что он хочет вызвать MessageBox из базонезависимого кода. До нормального вируса тут примерно как от надувания колеса велосипеда до ручной сборки мерседеса. вот мне хотя бы вызвать MessageBox из базонезависимого кода , знаю на asm это можно, но все же хочется на c++ |
|
Создано: 18 января 2013 04:49 · Личное сообщение · #17 |
|
Создано: 18 января 2013 05:08 · Поправил: OnLyOnE · Личное сообщение · #18 plutos пишет: Если не затруднит, можно ссылкой поделится? А то в гоогле все какие-то игры идиотские... ----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: plutos |
|
Создано: 30 января 2013 04:50 · Поправил: DrGolova · Личное сообщение · #19 |
|
Создано: 30 января 2013 11:13 · Поправил: Hexxx · Личное сообщение · #20 Archer пишет: Заканчивайте с оффтопом. Мам, ну я еще чуть-чуть! получается что бы получить некие знание нужно просто мозг повернуть? либо родится гением которые знает ответы на все вопросы? другого недано? Да, так и есть чтобы перейти в реверсинг нужно, чтобы в мозгу перещелкнулось убеждение "скомпилированный код изменять код нельзя". Многие так к примеру не могут заняться ремонтом бытовой техники, которая требует лишь замены узла, не смотря на то что, сами собирают себе комп. Или к примеру вызывают электрика, чтобы поменять розетку из-за убеждения, что "электрический ток 220 вольт - это опасно". Вот так и с эксплоитами, существует убеждение у людей что "код выполняется только в пределах заложенных спецификацией" и они не верят в то, что крэш программы может быть вполне управляемым и даже направленным на выполнение каких-то действий. Как только осознание приходит - все меняется. Некоторым это дано от природы, некоторым нужна помощь чтобы осознать. reversecode пишет: Hexxx а откуда получил эксперт эти знания? у другого эксперта? а тот у кого? итд, Ну в ситуации с эксплоитами примерно так оно и есть. Как у ремесленников средних веков. И действительно в начале должен был появиться гений, у которого врожденное было такое нестандартное мышление. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 30 января 2013 14:27 · Поправил: gloomdemon · Личное сообщение · #21 _or_75 пишет: hors пишет: Несколько смущает strcmp. Необходимо написать свой аналог( это нетрудно). ну это не проблема например так: Если компиляется через VC++ то можно использовать intrinsics http://msdn.microsoft.com/en-us/library/5704bbxw%28v=vs.80%29.aspx . Они же будут полезны если код надо будет сделать x64, т.к. в VC для x64 inline asm'a нет. Еще есть проблемы с вызовом Kernel32Addr и FunctionAddr, как бэ будет использоваться их абсолютный адрес. Опять же, если юзается VC++ то нужно объявить их __forceinline и прописать копилеру /Ob1 или /Ob2. Не уверен что ключи сработают если компилять в debug, но в release будет нормально. Лучше всего эти функции вообще сделать как define. И да первым делом нужно получить GetProcAddress, что бы инлайновые функции не раздули код. Есть еще момент _or_75 пишет: mov ebx, [ebx] // 2nd entry mov ebx, [ebx] // 3rd entry mov ebx, [ebx + 0x10] // 3rd entries base address (kernel32.dll) что на 3ем месте в списке у тебя не обязательно будет kernel32.dll =) (обычно он там и будет, но всякое может быть) Можно начать с того, что на 2м месте, почти всегда будет ntdll.dll =) ЗЫ Про строки уже написали, нужно их все перебить как n0name пишет: char pezda[] = {'p','e','z','d','a',0}; |
|
Создано: 30 января 2013 14:47 · Личное сообщение · #22 |
|
Создано: 31 января 2013 16:57 · Личное сообщение · #23 |
|
Создано: 31 января 2013 17:05 · Личное сообщение · #24 ARCHANGEL пишет: char pezda[] = {'p','e','z','d','a',0}; Будет сгенерирован код пихающий байты в стек. С базонезависимостью все ОК. ARCHANGEL пишет: char str[] = "juststring"; //те же яйца, но меньше кавычек. Будет сгенерирована строка в секции данных и релок на нее. Базонезависимо только на x64. ----- PGP key | Сообщение посчитали полезным: ARCHANGEL |
|
Создано: 31 января 2013 17:06 · Личное сообщение · #25 |
|
Создано: 31 января 2013 23:56 · Личное сообщение · #26 |
|
Создано: 01 февраля 2013 13:34 · Поправил: gloomdemon · Личное сообщение · #27 sendersu пишет: а еще можно const char* const str = "hello braza"; // И VC++ сделает mov [ebp+str], offset aHelloBraza ; "hello braza" в rdata. И если компилять через VC++ то лучше ему еще сказать /GS- и прописать прагмы #pragma check_stack(off) #pragma strict_gs_check(off) #pragma runtime_checks("", off) а то напихает всякие проверки еще. yagello пишет: Господи, базонезависимый код на С++. Ну вы, блин, даёте. Пишешь на голом С, генеришь ассемблерный листинг, его допиливаешь до нужной кондиции. Что так сложно? Лучше сразу опкодами нафигачить, а то для асма еще компилер запускай. И да, еще для x64 отдельный вариант не забыть. |
|
Создано: 15 марта 2013 16:43 · Личное сообщение · #28 |
|
Создано: 16 марта 2013 02:48 · Личное сообщение · #29 |
|
Создано: 16 марта 2013 03:35 · Поправил: Vovan666 · Личное сообщение · #30 _or_75 пишет: memcpy не могу написать, может кто поможет ? http://research.microsoft.com/en-us/um/redmond/projects/invisible/src/crt/memcpy.c.htm https://www.student.cs.uwaterloo.ca/~cs350/common/os161-src-html/memcpy_8c-source.html http://www.opensource.apple.com/source/xnu/xnu-2050.7.9/libsyscall/wrappers/memcpy.c http://code.google.com/p/koron/source/browse/trunk/src/clib/C/string/memcpy.cpp?spec=svn7&r=7 | Сообщение посчитали полезным: _or_75 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› Вопрос по базонезависимому коду [c++] |
Эта тема закрыта. Ответы больше не принимаются. |