Что нового

Не понятное явление с ресурсом типа RCData

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Создаю msg.exe написанное на AutoIt

Содержание exe
Код:
MsgBox(0, 'Test', 'Test')

Беру обычный Notepad.exe
Создаю exe на AutoIt, открываю его через редактор ресурсов
Restorator 2007, создаю новый ресурс RCData, в папке RCData
добавляю 2 ресурса с именами 1 и 2, в 1 кладу msg.exe, во 2й кладу
Notepad.exe, сохраняю, запускаю и произвольно запускается 1й ресурс
msg.exe, ведь он не должен запускатся...

2я попытка, проделываю всё тоже самое, только в RCData я не добавляю
msg.exe, сохраняю, запускаю, и ни чего, тоесть Notepad.exe не запустился
произвольно из ресурсов, в чем прикол???

В том exe в который я добавляю ресурсы, находится функция

Код:
Func ResourceSaveToFile($InstallPath, $aResName)
	Local $hInstance, $hResource, $aResSize, $aResLoad, $pMemRes
	$hInstance = _WinAPI_GetModuleHandle('')
	$hResource = _WinAPI_FindResource($hInstance, 10, $aResName)
	$aResSize = _WinAPI_SizeOfResource($hInstance, $hResource)
	$aResLoad = _WinAPI_LoadResource($hInstance, $hResource)
	$pMemRes = _WinAPI_LockResource($aResLoad)
	$tByte = DllStructCreate('byte[' & $aResSize & ']', $pMemRes)
    $aHandle = FileOpen($InstallPath, 18)	
	FileWrite($aHandle, DllStructGetData($tByte, 1))
	Return $InstallPath
EndFunc

Для извлечения ресурса на диск, всё работает, но если я добавляю в ресурсы
exe написанный на AutoIt, то он произвольно запускается....
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Т.е. у тебя есть некий A.EXE. С помощью Restorator'а ты помещаешь некий B.EXE в новый ресурс типа RCData. Теперь после запуска A.EXE у тебя автоматически запускается B.EXE. Так?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Тогда выкладывай пример, подтверждающий такое поведение.


Добавлено:
Сообщение автоматически объединено:

Хе-хе. Да, действительно прикол получается.

:smile:
 

NCsoft

Новичок
Сообщения
24
Репутация
0
или я не правильно прочитал или ты натупил!!

ты же сам написал что создаёшь EXE через автоит!
в начале темы у тебя написано как бы что ты написал там вот это
Код:
MsgBox(0, 'Test', 'Test')

затем в этот EXE ты запихиваешь туда 2.EXE и он автоматом запускается у тебя.

может это всё таки запускается главный EXE со скриптом
Код:
MsgBox(0, 'Test', 'Test')
може провтыкал :laugh:




хотя ты же написал что когда только нотепад запихиваешь то ничего не происходит...

RCData это маленький алгоритм

твой EXE написан на том же коде что и 2.EXE вот он считывает тот и тот. по этому и запускает его
такое самое на дельфине!

в главном EXE просто добавь скрипт что программа завершена тоесть скрипт окончания команд. должно помогти.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
NCsoft, а может прочитаешь ещё раз, я создаю exe с MsgBox, откладываю его, создаю главный exe, потом в главный в RCData добавляю exe с MsgBox, при запуске срабатывает тот exe который находится в ресурсах

твой EXE написан на том же коде что и 2.EXE вот он считывает тот и тот

Я уже догадался, нужно решение найти, а то не дело, в ресурсах AutoIt'овские exe сами срабатывают, функция RunBinary не обрабатыват AutoIt'овские exe, не справедливость какая - то :stars:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Да вот простой пример, иллюстрирующий этот прикол, и без всяких редакторов ресурсов.

Test.au3

Код:
#AutoIt3Wrapper_Res_File_Add=Msg.exe, 10, 1

MsgBox(64, '', 'Main script.')


Msg.au3

Код:
MsgBox(16, '', 'What is it?')


Скомпилируйте предварительно Msg.au3, а затем запустите Test.au3.

:smile:


Добавлено:
Сообщение автоматически объединено:

Как бороться? Пока могу предложить только предварительно сжать Msg.exe с помощью _WinAPI_CompressBuffer() или использовать FileInstall().
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
хотелось бы чтоб доп. exe находился в ресурсах а не в теле скрипта :whistle:
Хотя если exe можно засунуть не только в RCData, а скажем в строковую таблицу или таблицу сообщений побайтно, то это думаю решит проблему, при запуске наверное бин.код же не запустится..., а дальше я смогу делать с ресурсом что хочу из под самой программы....
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Viktor1703 сказал(а):
хотелось бы чтоб доп. exe находился в ресурсах а не в теле скрипта...

Если .exe будет сжат каким-нибудь упаковщиком (хотя бы UPX'ом), то все будет работать нормально. А если PECompact'ом, то никакой Restorator уже его автоматом не распакует.

;)
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Хм, ясно, буду пробовать :smile:


Добавлено:
Сообщение автоматически объединено:

Сжал через UPX, засунул в RCData, запустил, сообщение вылезло, попробовал тоже самое только запхал в ресурс User-defined - тоже не помогло :scratch:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Viktor1703 сказал(а):
Сжал через UPX, засунул в RCData, запустил, сообщение вылезло...

;D

Чем засовывал? При открытии .exe в Restorator'е, файл автоматически распаковывается, иначе ресурсы добавить не получится (там есть соответствующая опция). Нужно наоборот:

Засунул в RCData, сжал через UPX, запустил, сообщение вылезло не вылезло...


Добавлено:
Сообщение автоматически объединено:

При запуске скомпилированного скрипта, AutoIt ищет сигнатуру на сам скрипт, да видимо не ту находит... Если сжать все это хозяйство, то и найти уже ничего не получится.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Ребят, я к сожалению в детали не вникал, но судя по этим строкам
Yashied [?]
есть некий A.EXE. С помощью Restorator'а ты помещаешь некий B.EXE в новый ресурс типа RCData. Теперь после запуска A.EXE у тебя автоматически запускается B.EXE.
наводит на мысль сокрытия зловредного кода в не зловредный... если так, может стоит скрыть тему от шаловливых рук некоторых особо любопытных пользователей?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Да нет, это ничем не грозит.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Kaster, я в мирных целях, ещё при том что я возмущяюсь по поводу автоматического запуска exe из ресурсов :smile:

Yashied, вот оно как, я не разбираюсь в упаковках файлов и когда их нужно делать, по этому сделал наобород, попробовал как Вы сказали, заработало, значит тема решена :smile:
 
Верх