Вызов API без ее объявления?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Вызов API без ее объявления?

Сообщение Mleha » 31.05.2005 (Вт) 16:08

Статья с VBStreets писал(а):Список использованных функций можно посмотреть в дизассемблированном файле; чтобы этого не было видно: можно использовать вызов необъявленных API (где-то на VBStreets видел пример)


Как такое возможно? Вазвать API, даже не описав ее?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2005 (Вт) 16:21

Возможно.
Там, где это действительно нужно, а то переусердствовать нетрудно...
См. мои статьи на сайте.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 31.05.2005 (Вт) 16:30

Это вроде Call Shell("Rundll.exe shell32.dll SH...)?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2005 (Вт) 16:47

Нет. Это вроде typedef int (__stdcall *myfunc)(int p1, int p2);, только на VB.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 31.05.2005 (Вт) 16:53

LoadLibrary
CallByName :?:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2005 (Вт) 17:24

А ещё можно через TLB функции импортировать :roll:
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 31.05.2005 (Вт) 17:44

Дык это, например, тоже без вызова...

Код: Выделить всё
'Перезагрузка
Call Shell("rundll32 shell32,SHExitWindowsEx 2")
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2005 (Вт) 18:06

Ну да, способов масса. Можно ещё эксплойт в чужую прогу внедрить :lol:
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2005 (Ср) 7:57

Konst_One писал(а):LoadLibrary
CallByName

Попробуй, попробуй...

tyomitch писал(а):А ещё можно через TLB функции импортировать :roll:

Ну, это-таки объявление, нет? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.06.2005 (Ср) 11:08

Таки-да, но достигается цель Mleha - не засветить функцию в Обычном Месте. Понятно, что где-нибудь функция всё равно засветится. Какой-нибудь кулхакер перехватит вызовы GetProcAddress, и тогда уже ничего не спасёт X-)
Изображение

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 02.06.2005 (Чт) 2:07

Вот статейка
http://vbstreets.ru/VB/Articles/66035.aspx

Хакерам тоже можно затруднить жизнь

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.06.2005 (Чт) 4:50

Собственно, про неё я и говорил :roll:
Но как она может затруднить жизнь человеку, перехватывающему GetProcAddress? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 159

    TopList