Comments 37
UFO just landed and posted this here
Думаю, что они хотят избавиться от неуправляемого и дырявого WinAPI в сторону защищенного и огораживающего WinRT
+9
UFO just landed and posted this here
Простите, а вы с автором братья? :) Мне сперва почудилось, что автор пишет под одним ником, а комментит под другим :).
+1
Я бы не сказал что WinAPI такой дырявый — это те кто использует часто забывают об элементарных правилах по качеству кода, а если учесть что в VS2012 есть плагин для анализа качества кода — так вообще шикарно.
Если учесть что большая часть приложений идущий в комплекте с Windows — являются нативными :)
Если учесть что большая часть приложений идущий в комплекте с Windows — являются нативными :)
+3
Пустят ли в Store с этим хаком?
+10
Встречный вопрос — а кто в код будет смотреть?
+4
Можно автоматизировать.
0
Вообще-то МС проводит анализ кода, по крайней мере в Windows Phone Store точно.
+5
Таблицу импорта посмотреть.
0
А если «вручную» пропарсить таблицу экспорта найденного модуля?
0
Собственно вот и оно: pastebin.com/58XL0vpq (не обратил внимание, что так уже и делается, спасибо elmm).
В импорте остается только GetTickCount64.
В импорте остается только GetTickCount64.
+1
Все сборки проверяются на наличие вызовов WinAPI — если нашли — не пропускают.
Можно и самому с помощью Windows App Cert Kit проверить (ставится вместе с VS 2012)
Можно и самому с помощью Windows App Cert Kit проверить (ставится вместе с VS 2012)
+1
Вообще то в WinRT приложениях можно вызвать WinAPI. Разрешена только малая часть, но её хватит чтобы реализовать данный хак.
Единственный момент — LoadLibrary использовать нельзя, вместо нее LoadLibraryPackage. А с GetProcAdress проблем нет.
Список разрешенных методов из WinAPI и COM
Единственный момент — LoadLibrary использовать нельзя, вместо нее LoadLibraryPackage. А с GetProcAdress проблем нет.
Список разрешенных методов из WinAPI и COM
+3
На сколько я понял, из WinAPI пример импортирует только одну функцию — GetTickCount64
Остальное он сам находит сам в памяти, в том числе и LoadLibrary.
Так что, если GetTickCount64 импортировать и использовать можно, то такое приложение не должно вызвать подозрений.
Остальное он сам находит сам в памяти, в том числе и LoadLibrary.
Так что, если GetTickCount64 импортировать и использовать можно, то такое приложение не должно вызвать подозрений.
0
Как он находит?
0
закинул PeGetProcAddressA из примера вот сюда — pastebin.com/58XL0vpq
0
Кто и что находит?
Если про функцию — то проблем нету, ищется заголовок MZ (привет MS-DOS для ARM) + PE — а там по смещению адрес функции.
Если про функцию — то проблем нету, ищется заголовок MZ (привет MS-DOS для ARM) + PE — а там по смещению адрес функции.
0
Думаю тут можно было-бы и обойтись — т.к. ЛЮБОЕ .NET приложение экспортирует mscorlib.dll (там правда нету импорта) и mscoree.dll (а вот там он уже есть) а там уже в его таблице импорта можно найти ссылку на KERNEL32.DLL (тьфу KRNLBASE.DLL по сути) и найти нужную точку входа и ссылку на WinAPI.
Кстати тогда в PE Import Section не будет подозрительного экспорта т.к. компилятор при упаковке импорта сольет все в одну запись. А как известно — использование mscoree.dll разрешено например для рефлекции и интроспеции.
Кстати тогда в PE Import Section не будет подозрительного экспорта т.к. компилятор при упаковке импорта сольет все в одну запись. А как известно — использование mscoree.dll разрешено например для рефлекции и интроспеции.
0
За любые импорты из винапи рубят, даже за GetTickCount64?
0
и на этих девайсах приживется мода с альтернативными маркетами.
+9
Фраза по оригинальной ссылке намекает, что не пустят:
Obviously there are lots of ways to overcome this limit and to call any API you like, if you are not going to publish your app on Windows Store.
0
технически Да, т.к. приложение может загружать обновления через сеть (точнее плагины) — и в одном из плагинов будет такой «подарочек», однако если этот факт вскроют — то есть риск получить бан на Маркете.
0
Не пустят, пробовал использовать в приложении, «пришлось» отказаться.
FAILED
Supported APIs
Error Found: The supported APIs test detected the following errors:
API CredWriteW in advapi32.dll is not supported for this application type.
Impact if not fixed: Using an API that is not part of the Windows SDK for Windows Store apps violates the Windows Store certification requirements.
FAILED
Supported APIs
Error Found: The supported APIs test detected the following errors:
API CredWriteW in advapi32.dll is not supported for this application type.
Impact if not fixed: Using an API that is not part of the Windows SDK for Windows Store apps violates the Windows Store certification requirements.
+1
А на скрине — Юнити из новой Убунты? Выглядит словно Юнити создали в 98-м году.
-7
на скрине WinRT ))
Это мое личное отношение, но мне дизайн Desktop-режима в Win8 и WinRT не радует прям совсем. У нас еще на терминальном сервере Win2012 стоит — я эти приплюснутые окошки насмотрелся, но сама система вроде не плохо работает.
Это мое личное отношение, но мне дизайн Desktop-режима в Win8 и WinRT не радует прям совсем. У нас еще на терминальном сервере Win2012 стоит — я эти приплюснутые окошки насмотрелся, но сама система вроде не плохо работает.
+2
Надо ещё до Native API (ntdll.dll) там добраться.
+1
Только с .netusergoup — если верить Байдачному — такой код не пропустят. Приложения в среднем проходят аттестацию около недели, начиная с программного анализа, и заканчивая проверкой человеком, если дословно «индус какой-нить».
0
Такой код ещё попробуй найди.
В импортах же ни чего военного не будет светится.
Вряд ли они как-то ещё проверяют, кроме как по импортам.
А насчёт индуса — отключить вот такой скрытый функционал на момент тестирования (а время можно на своём сервере проверять, чтоб простым переводом часов не вскрылось).
Вобщем при желании что-то намутить можно.
В импортах же ни чего военного не будет светится.
Вряд ли они как-то ещё проверяют, кроме как по импортам.
А насчёт индуса — отключить вот такой скрытый функционал на момент тестирования (а время можно на своём сервере проверять, чтоб простым переводом часов не вскрылось).
Вобщем при желании что-то намутить можно.
0
с каким лицом я литал эту новость:
i0.kym-cdn.com/photos/images/newsfeed/000/190/697/th_ShockedCatIsShocked.gif?1319489530
i0.kym-cdn.com/photos/images/newsfeed/000/190/697/th_ShockedCatIsShocked.gif?1319489530
-3
Не думаю, что кафтанчик по размеру Майкрософту. Я про то, что вряд ли запреты всего и вся как это сделано в яблочных мобильных ОС пойдут на пользу. Определенная свобода была основной «фишкой», позволявшей майкрософту держать долю рынка, будут запреты — многие уйдут с платформы, благо есть куда…
Время покажет, но я особого оптимизма не испытываю.
Время покажет, но я особого оптимизма не испытываю.
+2
Интересный способ. Но, видимо, вызов api разработчики не особо то и прятали, потому как для пк это обыденные алгоритмы.
+1
Only those users with full accounts are able to leave comments. Log in, please.
Использование WinAPI на Surface