Старый 27.01.2012, 23:30   #31   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
Спасибо за ссылку
Книжка Пирогова на озоне.
К сожалению нету в продаже но можно найти на других ресурсах
Да, смотри сайт wasm.ru. Там огромное количество статей для начинающих. И с помощью софта сможешь сделать первые шаги в твоём любимом асме
 
Старый 27.01.2012, 23:31   #32   
старый хрыч
 
Аватар для X0R
 
Сообщений: 6,705
Регистрация: 17.12.2006
Возраст: 37

X0R вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
мне интересно, как реализуется та или иная функция в WinAPI
IDA Pro
 
Старый 27.01.2012, 23:38   #33   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
Есть такие
 
Старый 27.01.2012, 23:56   #34   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
спасибо за ответ, но с этим я знаком
мне интересно, как реализуется та или иная функция в WinAPI
Programming Windows, The Definitive Guide to the Win32 API
Charles Petzold (Microsoft Press)

Крайне рекомендую. И книгу и автора в целом. Если Кнут для меня был книгой откровений в алгоритмах, то Петзольд разьяснил - каким местом думали Билли & co, когда разрабатывали винду.
 
Старый 28.01.2012, 00:01   #35   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от X0R Посмотреть сообщение
IDA Pro
Вещь, факт. Но в данном случае я бы посоветовал Visual C++ в режиме смешанного просмотра С++/ASM кода. Очень познавательно видеть во что превращаются твои сишные выкрутасы, раз, облегчает понимание конкретных асмовских операций - два.
Ну и попроще будет, чем IDA.
 
Старый 28.01.2012, 00:25   #36   
старый хрыч
 
Аватар для X0R
 
Сообщений: 6,705
Регистрация: 17.12.2006
Возраст: 37

X0R вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
я бы посоветовал Visual C++ в режиме смешанного просмотра С++/ASM кода
все пути винапи ведут к ядру и драйверам)) А там и до WinDbg недалеко)))
 
Старый 28.01.2012, 00:36   #37   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от X0R Посмотреть сообщение
все пути винапи ведут к ядру и драйверам)) А там и до WinDbg недалеко)))
Ну, батенька, это уже слишком глубоко. Если только драйвера разрабатывать. Но это уже отдельный разговор.

Так, Спартак, тема скатывается во флуд, ты уже должно быть понял что изначальная постановка вопроса неверна. Посему подразберись в полученной информации и сформулируй, при необходимости, другую тему. А эту я неторопливо прикрою.
 
Старый 28.01.2012, 00:41   #38   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
Очень познавательно видеть во что превращаются твои сишные выкрутасы, раз, облегчает понимание конкретных асмовских операций - два.
Вот это ты загнул Сейчас наоборот идёт упор на статический анализ самого кода, а ты всё с асмом.
 
Старый 28.01.2012, 01:09   #39   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Hopkroft Посмотреть сообщение
Вот это ты загнул Сейчас наоборот идёт упор на статический анализ самого кода, а ты всё с асмом.
Jedem das seine. Это первое.
Второе. Никакой "упор" не идет. Я баловался с теми штуками, о которых ты говоришь. ОЧЕНЬ интересно, но практической пользы - ноль целых, ноль десятых. Если только речь идет об очень крупном проекте, в котором ошибки надо предупреждать, поскольку цена каждой будет измерятся сотнями часов и, соответственно, тысячами долларов.
В качестве резюме: и то и другое нужно, просто в разных случаях.
Эту ветку я снесу в болталку, впоследствии. Или можно тему отдельную открыть, вопрос, в целом, вполне себе интересный. И мне в том числе.
Спартак "наш человек", поэтому зверствовать не буду (я крайне против флуда и подколов в темах, которые создали люди, которые незнакомы с контингентом данного раздела, но тут позволю и себе и остальным в меру пофлудить).
Но недолго, если будет интерес, создаем тему и там общаемся по поводу статического анализа кода. Так ее и назовем.

Последний раз редактировалось Spectator; 28.01.2012 в 13:35.
 
Старый 28.01.2012, 08:19   #40   
Registered User
 
Аватар для Спартак21
 
Сообщений: 402
Регистрация: 14.11.2007
Возраст: 37

Спартак21 вне форума Не в сети
да, правильно тобой сформулирована постанавка вопроса. именно это меня и интересует
 
Старый 28.01.2012, 14:15   #41   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,870
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от Спартак21 Посмотреть сообщение
да, правильно тобой сформулирована постанавка вопроса. именно это меня и интересует
Кем? Мной? Я ничего не форумулировал.
Спартак, ну напиши же, наконец, что ты хочешь получить, вход, выход, язык, среда, ОС. Ты программист или куда? Чёткая постановка вопроса - это наше всё.
 
Старый 09.02.2012, 13:15   #42   
Форумец
 
Сообщений: 1
Регистрация: 09.02.2012

buhovik вне форума Не в сети
Ниже пример как, в usermode, получить iopl ring0 и бипнуть через порты (бип взят из hal.dll). У меня не пищит - потерялся динамик.

Код:
#include <tchar.h>
#include <iostream>
#include <windows.h>


bool SetPrivilegeState(HANDLE aToken, LUID& aPrivId, bool aState)
{
	TOKEN_PRIVILEGES tTp;
	bool tRes = false;

	tTp.PrivilegeCount = 1;
	tTp.Privileges[0].Luid = aPrivId;
	tTp.Privileges[0].Attributes = (aState ? SE_PRIVILEGE_ENABLED : 0);

	if (AdjustTokenPrivileges(aToken, FALSE, &tTp, sizeof(TOKEN_PRIVILEGES), NULL, NULL)) tRes = true;

	if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
	{
		tRes = false;
	};
	return tRes;
};

bool SetPrivilegeState(HANDLE aToken, const _TCHAR* aPrivName, bool aState)
{
	LUID tLuid;
	bool tRes = false;

	if (LookupPrivilegeValue(NULL, aPrivName, &tLuid)) tRes = SetPrivilegeState(aToken, tLuid, aState);

	if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
	{
		std::cout << "User has not privilege : " << aPrivName << std::endl;
	};
	return tRes;
};

bool SetTcbPrivilegeState(HANDLE aProc, bool aState)
{
	HANDLE tToken;
	bool tRes = false;

	if (OpenProcessToken(aProc, TOKEN_ADJUST_PRIVILEGES, &tToken))
	{
		tRes = SetPrivilegeState(tToken, _TEXT("SeTcbPrivilege"), aState);
		CloseHandle(tToken);
	};
	return tRes;
};

bool EnableUserIOPL_R0(HANDLE aProc)
{
	typedef NTSTATUS (__stdcall *TSetProcInfoFunc)(HANDLE, long, void*, unsigned long);

	int UserIOPL = 16;
	bool tRes = false;
	HMODULE tLib = LoadLibrary(_TEXT("ntdll.dll"));

	if (tLib)
	{
		TSetProcInfoFunc tSetFunc = (TSetProcInfoFunc)GetProcAddress(tLib, "NtSetInformationProcess");
		if (tSetFunc)
		{
			NTSTATUS tStat = tSetFunc(aProc, UserIOPL, NULL, 0);
			tRes = (tStat >= 0);
		};
		FreeLibrary(tLib);
	};
	return tRes;
};

bool EnableSystemIo()
{
	bool tRes = false;
	HANDLE tProcHandle;
	if (DuplicateHandle(GetCurrentProcess(), GetCurrentProcess(), GetCurrentProcess(), &tProcHandle, PROCESS_ALL_ACCESS, FALSE, 0))
	{
		if (SetTcbPrivilegeState(tProcHandle, true))
		{
			tRes = EnableUserIOPL_R0(tProcHandle);
		};

		CloseHandle(tProcHandle);
	};
	return tRes;
};

void BeepSignal(unsigned long aFreq)//hall.dll HalMakeBeep()
{
	const long tTimerFreq = 0x1234CF;
	__asm
	{
		in	al, 0x61
		and	al, 0xFC
		out	0x61, al
	};
	if (aFreq > 0)
	{
		aFreq = tTimerFreq / aFreq;
		if (aFreq < 65000)
		{
			__asm
			{
				mov al, 0xB6
				out 0x43, al
				mov	eax, [aFreq]
				out 0x42, al
				mov al, ah
				out 0x42, al

				in	al, 0x61
				and	al, 0xFC
				out	0x61, al
			};
		};
	};
};


int _tmain(int argc, _TCHAR* argv[])
{

	if (EnableSystemIo())
	{
		BeepSignal(600);
		Sleep(1000);
		BeepSignal(0);
	};
	return 0;
}
 
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind