ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
взлом<br />
№ 6<br />
ЗАДАЧА: СОЗДАТЬ ПОРТАТИВНУЮ<br />
ВЕРСИЮ .NET-ПРИЛОЖЕНИЯ С<br />
ИСПОЛЬЗОВАНИЕМ THINAPP<br />
РЕШЕНИЕ:<br />
Мне приходится пользоваться различными .NET-сборками, в том числе и совсем<br />
безобидными. Да и сам я, разрабатывая десктопные приложения, зачастую программирую<br />
на C#. Как удобно закинуть все это добро на флеху и пользоваться везде, где только<br />
можно! Проблема в том, что фреймворк по умолчанию в WinXP не включается и велика<br />
вероятность, что запуск проги будет связан с необходимостью установки самой среды.<br />
Тем не менее, создать портативное приложение можно, например, с использованием<br />
виртуального контейнера ThinAPP.<br />
1. Скачиваем .NET Framework 3.5 по адресу http://download.microsoft.com/<br />
download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe. Я<br />
тебе советую скачать весь пакет — еще пригодится :)<br />
2. Скачиваем любую среду виртуализации, например VMWare Workstation.<br />
3. Устанавливаем виртуальную ось. Нужна максимально чистая Windows XP (всякие<br />
Zver DVD не рулят)!<br />
4. ОТКАЗЫВАЕМСЯ от установки VMWare Tools. Поверь мне, так надо, хотя в официальной<br />
документации про это ничего нет.<br />
5. Каким-то образом получаем и инсталлируем ThinAPP — тулза стоит от 6000 вечнозеленых<br />
рублей, так что разбирайся сам :)<br />
6. Делаем снапшот системы под названием ThinAPP Ready.<br />
7. Запускаем ThinAPP Setup Capture, следуем инструкциям мастера.<br />
8. Устанавливаем .NET framework.<br />
9. Настраиваем опции сборки контейнера ThinAPP. Обязательно включи в состав точек<br />
входа cmd.exe. В качестве Sandbox Location выбирай USB Flash.<br />
10. Собираем контейнер. Сохраняем его в укромном месте. И я бы посоветовал еще раз<br />
снять снапшот.<br />
11. Запускаем ThinAPP Setup Capture и устанавливаем/копируем нужное нам приложение.<br />
Если копируешь, лучше это делать в папку %programfiles%, она будет видна из<br />
контейнера по переменной окружения и, соответственно, через консоль ты получишь<br />
доступ к файлам в обход интерфейса приложения.<br />
12. Настраиваем параметры сборки контейнера и, не запуская build, нажимаем на<br />
кнопку Browse Project.<br />
13. Выбираем для редактирования файл package.ini. Устанавливаем в нем параметр<br />
RequiredAppLinks=..\dotnetfx35\dotnetfx35, где ..\dotnetfx35 — путь до контейнера, содержащего<br />
.NET, а dotnetfx35 — собственно, имя самого файла контейнера.<br />
14. Строим контейнер.<br />
15. Перед запуском приложения удостоверься, что контейнер с .NET-средой доступен<br />
по указанному в настройках пути.<br />
Если тебе неохота засовывать само приложение в отдельный контейнер, можно этого и<br />
не делать. Надеюсь, ты включил в качестве точки входа в контейнер .NET cmd.exe (если<br />
нет — кури пункт 9). Запусти cmd.exe из папки с контейнером и уже из консоли вызови<br />
.NET-приложение. Могу тебя уверить — среду оно увидит и запустится нормально!<br />
Добавляем ссылку на контейнер .NET.bmp<br />
№ 7<br />
ЗАДАЧА: СОЗДАТЬ ПОРТАТИВНУЮ<br />
ВЕРСИЮ .NET-ПРИЛОЖЕНИЯ С ИС-<br />
ПОЛЬЗОВАНИЕМ XENOCODE<br />
РЕШЕНИЕ:<br />
Конечно, можно сделать все с помощью ThinApp: создать контейнер со<br />
средой .NET и натравить на него каким-либо образом тулзу на дотнете.<br />
Но... контейнер это150 метров. А что, если тулза при этом весит каких-нибудь<br />
пару мегабайт? Что, тащить за ней весь контейнер со средой? Конечно,<br />
нет! И если вмварез не справляется с задачей, то на помощь приходит<br />
Xenocode Postbuild! Он проанализирует код (точнее, секцию using) и сам<br />
определит, какие длл’ки из среды .NET нужно класть в контейнер с твоей<br />
тулзой. Вдобавок он умеет обфусцировать код несколькими методами<br />
(есть даже специально против ILDASM). И все это управляется из интерфейса<br />
ribbon (а-ля office 2007). Моя тулза весом 2 метра превратилась в<br />
экзешник 25 мегабайт (я использую Xenocode Postbuild v7.0.162).<br />
1. Идем на вкладку application, добавляем в список свою тулзу.<br />
2. Идем на вкладку output, ставим галку compile application to native x86<br />
executable image.<br />
3. Выбираем single application executable и в комбобоксе выбираем экзешник,<br />
к которому xenocode добавит среду .NET. Тут же есть галка Generate<br />
diagnostic-mode executable. Если впоследствии тулза будет сыпаться с<br />
ошибками, можно попробовать скомпилить с этой галкой. Тогда в папку с<br />
приложением будет падать лог с подробным описанием того, что происходит.<br />
4. Идем на вкладку Virtualize. В Runtimes можно выбрать версию среды,<br />
добавляемую в экзешник. Имей в виду, что среду xenocode подгружает из<br />
интернета со своего сайта, даже если она уже установлена в системе.<br />
5. В Filesystem можно добавить все, что должно быть в виртуальной<br />
файловой системе приложения. Например, моя тулза не может жить без<br />
длл’лек пакета DevExpress, который разрабатывает сторонняя контора<br />
и которые не входят в состав среды .NET. Поэтому в папку Application<br />
Directory я добавил длл’ки из этого пакета.<br />
Если не требуется обфускация (это тема для отдельного разговора), то на<br />
этом все. Можно жать Xenocode Application, и через несколько десятков<br />
секунд в твоем распоряжении — портативная версия приложения, не<br />
требующая среды .NET!<br />
Теперь о неприятном, то есть о минусах. К сожалению, точка входа может<br />
быть только одна. Если твое приложение состоит из нескольких исполняемых<br />
файлов, то решений тут может быть три.<br />
• Ксенокодить каждый exe по очереди. Тогда к каждому исполняемому<br />
файлу будет добавляться среда .NET.<br />
• Сделать точкой входа cmd.exe. Туда добавится часть среды .NET, необходимая<br />
для работы твоих приложений (не забудь только их тоже добавить<br />
в список на шаге 1). Но тогда каждый раз придется открывать заксенокоденную<br />
cmd.exe и уже оттуда запускать приложения, чтобы они увидели<br />
среду .NET.<br />
• Использовать thinapp. Если у тебя много дотнетовского кода, который<br />
нужно сделать портативным, сделай один контейнер со средой<br />
.NET, который будут использовать все приложения.<br />
Что использовать в каждом<br />
конкретном случае, решать,<br />
конечно же, тебе. Но я бы<br />
советовал: если есть пара<br />
приложений, которые неплохо<br />
бы сделать портативными,<br />
используй ксенокод. Если же<br />
тебе нужна вся среда .NET<br />
на флешке, — ThinApp тебе в<br />
Собираем сборку в unmanaged коде помощь. z<br />
XÀÊÅÐ 07 /127/ 09 047