ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #71  
Старый 25.06.2009, 02:47
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Насчет 10-ой задачи:
цель этих заданий, по-моему, состоит в том, чтобы показать решающим нечто, чего они раньше не видели, о чем не задумывались и что, возможно (!=точно), поможет им в дальнейшем.

Ай-ай! Я перепутал 10 и 14 задания ) Сорри

Код:
const int N = 3;
 	int** buf = new int*;
	int z = 0;

	for (int i=0; i<N; i++) {
		*(buf + i) = new int;
			for (int k=0; k<N; k++) {
				*(*(buf + i) + k) = z++;
				std::cout << *(*(buf + i) + k) << std::endl;
			}
        }

Последний раз редактировалось Fata1ex; 25.06.2009 в 13:15..
 
Ответить с цитированием

  #72  
Старый 25.06.2009, 03:13
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

ну хзхз. тут не вижу ничего интересного. все итак очевидно - юзать сишный способ работы с памятью + арифметика указателей. это как раз то, что должен обходить за километр программист на с++.
 
Ответить с цитированием

  #73  
Старый 25.06.2009, 03:20
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Цитата:
[C/C++] ЗАДАНИЯ
Я не очень верно выразился:
Цитата:
чтобы показать решающим нечто, чего они, по-моему, раньше не видели, о чем не задумывались и что, возможно (!=точно), поможет им в дальнейшем.
 
Ответить с цитированием

  #74  
Старый 25.06.2009, 10:24
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Кстати, чтото пока никто не решил мою задачку с обработкой исключений
 
Ответить с цитированием

  #75  
Старый 25.06.2009, 11:39
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от slesh  
Кстати, чтото пока никто не решил мою задачку с обработкой исключений
а одна строчка "VEH" тебя устроит?) //add: кстати, ты ведь не хотел застаить людей хучить KiUserExceptionDispatcher?
просто все чего-нть интересного ждут - вдруг появится?

кстати - скопипастю задачку из того, что я зачем-то в задания по пхп кинул:
что будет в переменной после выполнения кода (не компилить!)
Код:
/*very very long not ever overflowable*/ int a = 5+765432l;
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ

Последний раз редактировалось desTiny; 25.06.2009 в 11:58..
 
Ответить с цитированием

  #76  
Старый 25.06.2009, 12:51
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 desTiny вообще это решается без ассемблера и без разного рода ядерных функций.
Чисто только API функции (даже одна функция)
 
Ответить с цитированием

  #77  
Старый 25.06.2009, 13:07
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

т.к. судя по всему мало кто это использует или комуто неинтерестно это придется рассказать самому )
Есть такая апишка - SetUnhandledExceptionFilter. Через неё можно устанавливать собственный обработчик исключений для процесса.
Т.е. даже если ошибка произошла в каком либо потоке приложения, то всё равно будет вызван этот обработчик. Дригими словами это типа try except но в глобальном масштабе всего приложения. Вообще эта функция какбы заменяет обработчик ошибок который есть в винде (который показывает сообщение что прога выполнила некорректрую операцию итд).

Использовать его очень удобно для создания стабильных приложений. К примеру если в приложенни появится ошибка, то с помошью этой технологии её можно перехватить (даже без показа на экран) и запустить приложение заново или даже для удобства скинуть отладочный дамп на винт.
Использование очень просто:
Код:
// наш фильтр
LONG MyExceptHandle(struct _EXCEPTION_POINTERS *pExceptionInfo)
{
 char buf[256];
 GetModuleFileNameA(0,buf,256); // получим имя нашей проги
 printf("ERROR\n");
 WinExec(buf,SW_SHOW); // запустим заново её
 ExitProcess(0); // завершим процесс
 return 0;
}  

int main(int argc, char* argv[])
{
 printf("SRART\n");
 // ставим свой фильтр исключений
 SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)&MyExceptHandle); 
__asm
 {
  hlt // делаем ошибку
 }
 return 0;
}
Хоть перезапуск лучше делать с следящем процесс.
Лично я иногда использую слудующего рода конструкцию

Код:
LONG MyExceptHandle(struct _EXCEPTION_POINTERS *pExceptionInfo)
{
  _MINIDUMP_EXCEPTION_INFORMATION ExInfo;
  SYSTEMTIME lt;
  char NAME[512];

  GetModuleFileNameA(0, NAME, 512); // получим имя нашей проги
  GetLocalTime(&lt); // получим системное время
  sprintf(NAME, "%s_%i-%i-%i_%i-%i-%i.dmp", NAME, lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond);
  
  ExInfo.ThreadId = GetCurrentThreadId(); // зададим ID потока
  ExInfo.ExceptionPointers = pExceptionInfo; // зададим исключение
  ExInfo.ClientPointers = 0;
  // создадим файл для дампа
 HANDLE hFile = CreateFileA(NAME, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );
// скинем дамп в файл
  MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),hFile,MiniDumpNormal,&ExInfo,0,0);
// закроем файл
  CloseHandle(hFile);
// завершим процес с кодом появившейся ошибки
  ExitProcess(pExceptionInfo->ExceptionRecord->ExceptionCode);
 return 0;
}
В этоге при ошибке в прогамме, в папке с прогой появится файл
имяпроги_дата_время.dmp в котором будет содержаться дамп программы на момент ошибки.
Далее этот файл можно свободно подгрузить в отладчик или даже в VC++ 2008 открыть и подробно изучить причину ошибки (при наличии исходников вообще можно видеть строку где произошла ошибка итд итп) Очень удобная вешь для отладки больших проектов.

Последний раз редактировалось slesh; 25.06.2009 в 13:16..
 
Ответить с цитированием

  #78  
Старый 25.06.2009, 13:12
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 desTiny какой пакостник, людей дурить нехорошо. Ониже голову сломают без капса )
 
Ответить с цитированием

  #79  
Старый 25.06.2009, 13:24
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Обновил задания ) Обновил решение 10 задания ( теперь это решение 10 задания, а не другого (: ).

2 13 14 16
 
Ответить с цитированием

  #80  
Старый 25.06.2009, 19:21
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

slesh, SetUnhandledExceptionFilter делает не то, что ты просил. он добавит обработчик в самый низ, а ты, как я понял, просил добавить его наверх. И, к тому же, твой код трёт уже установленный exceptionfilter.
а
Код:
LONG NTAPI VEHproc(PEXCEPTION_POINTERS param){
  printf("error!!");
  return EXCEPTION_CONTINUE_EXECUTION;
}
...
AddVectoredExceptionHandler(1, VEHProc);
...
должен вполне нормально справляться со всем.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[PHP] ЗАДАНИЯ от Krist_ALL Krist_ALL PHP, PERL, MySQL, JavaScript 205 30.11.2009 18:31
Задания ~Fenix~ Болталка 11 13.05.2006 11:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ