Использование WinAPI на Surface

от автора

Всем доброго времени суток!
image
Как я ранее и предполагал, использовать WinAPI в новых устройствах от Microsoft, работающих под Windows RT, будет не так уж и сложно.

И я нашел небольшой пост на xpda.

И там для вызова нативных функций предложили хак, работающий сродни вирусам — поиск ядра и точек входа в процедуры вручную.

В посте был предложен небольшой кусок кода, демонстрирующий выполнение WinAPI вызовов:

void DoThings() { 	char *Tmp=(char*)GetTickCount64; 	Tmp=(char*)((~0xFFF)&(DWORD_PTR)Tmp);  	while(Tmp) 	{ 		__try  		{ 			if(Tmp[0]=='M' && Tmp[1]=='Z') 				break; 		} __except(EXCEPTION_EXECUTE_HANDLER) 		{ 		} 		Tmp-=0x1000; 	}  	if(Tmp==0) 		return;  	LoadLibraryA=(t_LLA*)PeGetProcAddressA(Tmp,"LoadLibraryA"); 	GetProcAddressA=(t_GPA*)PeGetProcAddressA(Tmp,"GetProcAddress"); 	CreateProcessA=(t_CPA*)PeGetProcAddressA(Tmp,"CreateProcessA");  	HMODULE hUser=LoadLibraryA("user32.dll"); 	MessageBoxA=(t_MBA*)GetProcAddressA(hUser,"MessageBoxA"); 	MessageBoxA(0,"A native MessageBox!","Test",MB_OK);  	STARTUPINFO si; 	memset(&si,0,sizeof(si)); 	si.cb=sizeof(si);  	PROCESS_INFORMATION pi; 	 	CreateProcessA("c:\\Windows\\system32\\cmd.exe",0,0,0,FALSE,0,0,0,&si,&pi); } 

По ссылке можно скачать готовые проекты, в т.ч. и в скомпилированном виде.

За сим, позвольте откланяться. Надеюсь будет Вам полезно!

ссылка на оригинал статьи http://habrahabr.ru/post/160739/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *