Воскресенье, 23 Февраля 2020, 00:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » fireday [57]
Результаты поиска
firedayДата: Понедельник, 14 Января 2013, 00:05 | Сообщение # 21 | Тема: Мои вопросы по обучению на Delphi XE и помощь к созданию игр
частый гость
Сейчас нет на сайте
Скажу сразу - все не читал.
Я так понял автору нужен мозаичный редактор карт 2д.
Я надеюсь ты спрайтами пользуешься?
Допустим у тебя есть пикчер бокс, в него и будем рисовать.
Создаем карту например 10*10, того массив из 100 спрайтов.
А в пикчер бокс видно только 5*5, по этому нужна возможность таскания.
Создаем главный спрайт, который будем рисовать. Рисовать 1 спрайт быстрее чем кучу мелких, т.к. это графич. обновление изображения - требуется больше времени.
По этому сначала рисуем наши маленькие спрайты в глв. спрайт, потом уже рисуем его.
при маус давн на карте включаеш таймер, если маус ап срабатывает через Н милисек - это клик, если нет, то клика не делаем. Вот так можно заполнять карту. Допустим ты выбрал изображение, кликнул по нужному спрайту - заполнил ячейку.
при маус давн "map_move"=true, при маус ап "map_move"=false. при маус мув если "map_move"=true, то дигаешь мапу, а именно прорисовываешь главный спрайт с нужными тебе изменениями left, top, определяя разницу в изменении координат мыши. То есть, при маус давн запоминаешь начальное положение глав. спрайта mdX=x,mdy=y, mdL=left, mdT=top
Потом рисуешь его с изменениями. left=mdL+(x-mdX), top=mdT+(y-mdy)


Сообщение отредактировал fireday - Понедельник, 14 Января 2013, 00:14
firedayДата: Воскресенье, 13 Января 2013, 23:58 | Сообщение # 22 | Тема: Где скачать борланд 7, с++
частый гость
Сейчас нет на сайте
Какая среда вам больше нравится (с++), что посоветуете?

Сообщение отредактировал fireday - Понедельник, 14 Января 2013, 01:04
firedayДата: Воскресенье, 13 Января 2013, 23:49 | Сообщение # 23 | Тема: Как сделать рассылку электронных писем?
частый гость
Сейчас нет на сайте
Пример на вб6.
Код
Public Function SendMail(adresant As String, _
adresat As String, adresantpass As String, mailsubj As String, _
mailbody As String, smtpservak As String, Optional mailattach1 As String)
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = adresant
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = adresantpass
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpservak  
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

Flds.Update
iMsg.Configuration = iConf
iMsg.To = adresat
iMsg.From = adresant
iMsg.Subject = mailsubj
iMsg.TextBody = mailbody
If mailattach1 <> "" Then
iMsg.AddAttachment = mailattach1
End If
iMsg.Send
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Function
firedayДата: Вторник, 08 Января 2013, 19:06 | Сообщение # 24 | Тема: Требуется совет опытных пользователей.
частый гость
Сейчас нет на сайте
Советую начать с простого.
С++ нагружает программиста множеством аспектов, которые зачастую не нужны.
Много ошибок в коде, которые сложно уловить, особенно для новичка.

Начните с простого языка, где простой синтаксис. По программируйте, поймете азы. Поймете что такое программирование. Вот тогда и сможете выбрать язык по вкусу "для себя".
Это очень важно найти именно "свой" язык.
Путь этот тернист, но он стоит того.
firedayДата: Воскресенье, 06 Января 2013, 22:47 | Сообщение # 25 | Тема: С чего начать?
частый гость
Сейчас нет на сайте
А я говорил про макросы для офиса?

Мне, например, доставляют удовольствие возможности которые предоставляет вб (говоря только об офисе)
Программировать прям в экселе, работать с эксель файлами из вб и т.д.
Уметь такое для себя уже хорошо, а если и для работы пригодится - красота.

п.с. Вот еще тема, может автору пригодится http://gcup.ru/forum/7-28078-1#469309


Сообщение отредактировал fireday - Воскресенье, 06 Января 2013, 22:49
firedayДата: Воскресенье, 06 Января 2013, 22:43 | Сообщение # 26 | Тема: С чего начать?
частый гость
Сейчас нет на сайте
Цитата (Vinchensoo)
И работу не найдешь. Время написания макросов под ворд ушло, к сожалению.

Да, возможно.
А вот с макросами - не знаю, востребовано ли еще.
Думаю что должно быть востребовано.
firedayДата: Воскресенье, 06 Января 2013, 22:32 | Сообщение # 27 | Тема: С чего начать?
частый гость
Сейчас нет на сайте
Если хочешь научиться программированию - советую начать с visual basic 6.0 (он разрабатывался специально для обучения)
Потом, как освоишь азы, сможешь выбрать более современный язык. Уже осмысленно.
п.с. А мне до сих пор лень переходить с вб6. На нем могу сделать почти все что хочу. Драйверы вот не напишешь(


Сообщение отредактировал fireday - Воскресенье, 06 Января 2013, 22:33
firedayДата: Пятница, 14 Декабря 2012, 23:27 | Сообщение # 28 | Тема: Basic vs Pascal
частый гость
Сейчас нет на сайте
5 лет уже программирую.
Начинал с паскаля, дельфи. Попробовал бейсик.
На данный момент знаю бейсик и паскаль.
И как вы думаете на чем я пишу?
Начнем с паскаля - На нем сложно что-то нормальное написать. Когда 30 вложенных операторов и все они end;end;
Траты времени на расставление бесполезный директив, которые были введены специально для обучения (напр. begin), утомляет.
А человек ведь ленивое создание, воти идет по легкому пути, п этому я выбрал бейсик.

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

п.с. Простите за столь исковерканное изложение мыслей, пишу уставшей...
п.п.с. После того как попробовал бейсик (vb6) после паскаля - отношение к программированию изменилось. Я рад что попробовал бейсик.


Сообщение отредактировал fireday - Пятница, 14 Декабря 2012, 23:30
firedayДата: Вторник, 11 Декабря 2012, 22:10 | Сообщение # 29 | Тема: Нужен совет по сборке компьютера.
частый гость
Сейчас нет на сайте
Вот тут можете создать темку, посоветуют.
citilink
По делу. Я бы взял атлон х4 740/750 на fm2. Самое выгодное предложение цена/производительность.
По поводу видео, сейчас красные заправляют. Так что 7770/7850.
Память советую сразу 8Гб.
firedayДата: Среда, 05 Декабря 2012, 17:14 | Сообщение # 30 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Ясно, спасибо за ссылку, почитаю.
Почему то все равно при вызове с null выдает ошибку. Мб это из-за того что древняя версия vb? visual basic 6.0
firedayДата: Вторник, 04 Декабря 2012, 21:02 | Сообщение # 31 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Что еще за соглашение вызова? Если, как вы выразились WinApi - stdcall - значит не вариант?
Code
Private Declare Function RtlSetProcessIsCritical Lib "ntdll.dll" (ByVal NewValue As Boolean, ByVal OldValue As Boolean, ByVal WinLogon As Boolean)
вызов:  
RtlSetProcessIsCritical True, Null, False
/
RtlSetProcessIsCritical False, Null, False
firedayДата: Вторник, 04 Декабря 2012, 19:12 | Сообщение # 32 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Quote (Archido)
Неправильно вызываешь. Ставить надо так:

Code
RtlSetProcessIsCritical(true, NULL, false);

Quote (Archido)
Снимать так:

Code
RtlSetProcessIsCritical(false, NULL, false);

Я так тоже делал (только с дебаг правами). Ошибку выдавал при вызове с "NULL".
Сейчас еще раз попробую.


Сообщение отредактировал fireday - Вторник, 04 Декабря 2012, 19:12
firedayДата: Понедельник, 03 Декабря 2012, 00:19 | Сообщение # 33 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Archido
win 7 (32/64). UAC включен. А вообще, программа должна нормально отрабатывать на ОС начиная с XP.
Думаю, что сделаю так
Контролирующая софтина будет грузится только при старте. Проверила - выключилась. Если чего-то не хватает, она копирует и запускает.
А уже сам клиент будет защищен bsod-ом.

Добавлено (02.12.2012, 22:18)
---------------------------------------------
Quote (Archido)
При установке "RtlSetProcessIsCritical" ОС его откажется завершать, а при попытке завалить через отладку (SE_DEBUG_NAME) - будет BSOD. Снять можно точно также как и поставить.
По поводу снятия. Пожалуйста, можно по точнее.

Добавлено (02.12.2012, 22:57)
---------------------------------------------
Делаю вот так:
модуль:


Вызываю вот так.
Code
Private Sub Form_Load()
ObtenerPrivilegios SE_DEBUG_NAME
RtlSetProcessIsCritical False, False, True
End Sub


Добавлено (03.12.2012, 00:19)
---------------------------------------------
Заметил вот что - защита работает, только если вызывать ObtenerPrivilegios SE_DEBUG_NAME в событии load (я так понимаю пока форма визуально не загрузилась).
А вот снять защиту потом не получается.
Снимаю так:
Code
RtlSetProcessIsCritical False, False, False
ObtenerPrivilegios SE_ASSIGNPRIMARYTOKEN_NAME

Если делать так:
Quote (Archido)
Для защиты процесса, можно сделать инжект в необходимый процесс и выполнить там небольшой код, вызвав одну недокументированную и интересную ф-цию из ntdll - "RtlSetProcessIsCritical". При попытке убить такой процесс - результатом будет BSOD
Надо сделать две dll-ки, первая делает процесс критическим. Вторая снимает защиту. Так работать будет?


Сообщение отредактировал fireday - Понедельник, 03 Декабря 2012, 00:22
firedayДата: Суббота, 01 Декабря 2012, 15:27 | Сообщение # 34 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Quote (Нохчи)
Не получится.
Ясно, спасибо.

Quote (Archido)
Отбить желание у детишек пытаться делать плохие вещи , а так то, ессно, можно как хочешь сделать. При установке "RtlSetProcessIsCritical" ОС его откажется завершать, а при попытке завалить через отладку (SE_DEBUG_NAME) - будет BSOD. Снять можно точно также как и поставить.
А можно обойтись без BSOD? Т.е. просто заблокировать попытку закрытия/вызвать перезагрузку через 30 сек, как при закрытии некоторых сист. процессов (ее же нельзя отменить shutdown -a?)? Ведь по мимо "SE_DEBUG_NAME", есть еще куча подобных параметров. Вот только какой мне нужен не знаю.


Сообщение отредактировал fireday - Понедельник, 03 Декабря 2012, 00:10
firedayДата: Суббота, 01 Декабря 2012, 00:38 | Сообщение # 35 | Тема: С чего начать изучение фортрана?
частый гость
Сейчас нет на сайте
Тихий, правильные вещи говоришь.
firedayДата: Пятница, 30 Ноября 2012, 23:33 | Сообщение # 36 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Quote (TimKruz)
Проще всего записать образ диска на USB-флешку, а USB в школьных компьютерах точно должны быть, хотя бы 1 свободный (или мышь/клавиатуру на время загрузки отключить)... Потом по-быстрому в BIOS настройки поменять или выбрать девайс из меню выбора устройства для бута...
Quote (TimKruz)
Загрузиться с LiveCD проще (скачал - записал - воткнул - выбрал устройство), чем искать способ убить заблокированную программу в системе без админ-прав. Способ всё равно остаётся, только это надо много чего знать и понимать, а загрузить какую-нибудь WinXP LiveCD и удалить файлик любой сможет. Так что единственный эффективный способ - визуальный контроль за учениками...
Вопрос так е решаем - загрузка только с hdd. Остальное отключается. Так же биос под пароль - не загрузится с флешки/диска.
По поводу визуального контроля за учениками. А я говорил что надо обеспечить контроль так, что бы визуальный не требовался? Об этом речи не шло.
Quote (TimKruz)
В идеальной школе компьютерный класс должен закрываться на перемену и иметь хоть какую-то защиту, учителя должны контролировать своих учеников на протяжении всего урока, ну и т.д., и т.п.... На практике всем пофиг на всё и всех. Но и особо буйных школьников-хакеров не так уж много, максимум в игрушки сидят играют, или меняют обои/заставки на какую-нибудь прикольную фигню...
Как написал выше - я не говорил об визуальном контроле вообще. На счет такого что всем на всех пофиг - согласен.

Quote (TimKruz)
Ну тогда в "Общие обсуждения программистов". К C++ тут вообще никакого отношения нет. А люди тут (на подфоруме "Программирование") сидят одни и те же, потому что тем не так много...
Что же рука лицо сразу? Про продвинутость я сказал, так как обычно именно люди работающие на с++ имеют дела с подобными вещами. Да, тут действительно именно к с++ отношения нету.

Quote (TimKruz)
Совсем не нужно, достаточно поместить в папку C:/Program Files/ и запретить доступ всем, у кого права ниже админа, ко всем папкам кроме C:/Temp (где сохраняются программульки учеников и всё такое) и, если нужно - отдельного логического диска D. Исполнять программу из заблокированной на изменения папки будет по-прежнему можно, но удалить/изменить нельзя.

Да, это в порядке вещей, я так и сделаю, но все же я перестрахуюсь сделав файл скрытым и системным (привычка прятать).

Quote (TimKruz)
Unclocker прав админа требует, если не ошибаюсь.

Да, действительно требует. Я об этом думал - он там работает, однако что-то левое запустить - открывает окошко с запросом прав сетевого админа.
Если поулчится прикрутить к своей программе Админские права - проблема решена.)

Добавлено (30.11.2012, 23:33)
---------------------------------------------

Quote (Нохчи)
1) Никуда инжектиться не надо, просто запустить свой собственный процесс с правами админа и сделать его критическим
2) чтобы похукать NtClose нужен дров, это не твой вариант

2) не знал.
1) Думаю, что так и сделаю. Так же прикручу программку для проверки валидности.
"запустить свой собственный процесс с правами админа и сделать его критическим " - Обойти такое без прав админа не получится?
firedayДата: Пятница, 30 Ноября 2012, 22:42 | Сообщение # 37 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Quote (Нохчи)
fireday, Archido предпологал, что у тебя есть права админа(иначе как ты дров грузить собрался?), а у школьников нет. Заинжектиться в процесс запущенный юзером с более высокими правами нельзя.
Драйвер достаточно заинсталить один раз под правами Админа.
А вот инжект нуждается в постоянных правах, так как загружается со старт апа -> под правами юзера.

Добавлено (30.11.2012, 22:31)
---------------------------------------------
Quote (TimKruz)
От пряморуких ничего не поможет. Пряморукий загрузится через свой LiveCD и занулит всю лишнюю информацию на жёстком диске. Только какому школьнику это может понадобиться? Да и накажут потом, когда вычислят виновника.
Пряморукость разной степени есть. Для того что бы загрузится с LiveCD так же нужны некие вещи, хотя бы привод и включенная загрузка с него (или доступ к биосу).

Quote (TimKruz)
А что если сервер, не дождавшись от компьютера-клиента ответа, просто удалённо перезагружает его? Или сам копирует и запускает нужный файл на нём. Всё равно ведь всё в локальную сеть подключено. Конечно, можно выдернуть сетевой шнур, но кому нужен школьный комп без доступа в интернет?..
Учительский ПК сидит под локальным админом.
В общем, лучше сделать систему независимую от локальных сетей. Тем более что система должна функционировать даже с выключенным сервером. Сервер лишь отдает команды.

Quote (TimKruz)
Почему тогда тема в разделе "C/C++"?!
Тему создал в разделе с++, так как тут сидят самые продвинутые.

Quote (TimKruz)
Ну как бы после BSOD'а детишки попытаются сделать это ещё несколько раз, предполагая BSOD всего лишь случайной ошибкой системы. А вот если программа просто перезапускается или выдаёт окошко-предупреждение - после пары десятков попыток желание её убить отпадает и вообще теряется смысл жизни, потому что какая-то там программулька от криворукого школьного сисадмина устояла перед безусловно пряморуким учеником...
Спасибо, подумаю над этим.

Quote (TimKruz)
А что она конкретно мониторит? Интересно просто. Вроде бы существуют стандартные средства мониторинга пользовательских компьютеров в сети с компьютера администратора сети.
Программа довольно проста.
Может подсматривать что происходит на экране.
Выключать монитор, отправлять сообщение, блокировать систему банером с сообщением.
Выключать/перезагружать пк.
Получать список процессов, убивать/блокировать процессы.

Дело в том, что компьютеры не всегда возможно контролировать с сетевого Администратора.
Много школ/лицеев/и т.д. ученики/учителя сидят под локальными пользователями.

Quote (TimKruz)
Чтобы не выдумывать лишние программы-костыли, нужно просто кабинеты закрывать на ключ на переменах и запрещать учителям убегать в неизвестном направлении чай пить прямо с урока, когда ученики делают, что хотят.
Вы себе как это представляете?

Добавлено (30.11.2012, 22:37)
---------------------------------------------
Quote (Archido)
ставится хук на NtClose и если туда передается любой из наших хендлов, то мы пишем в память по невалидному адресу и получаем BSOD, т.к. в kernel mode портить память нельзя категорически. Unlocker не сможет "отцепить" эти файлы, т.к. он делает это как раз при помощи закрытия всех хендлов, а мы это дело контролируем. Для защиты процесса - достаточно запомнить его PID и периодически проверять, и если его нет - то портить память и получать аналогичный BSOD

Quote (Нохчи)
зачем бсодить не понятно, просто вернуть управление и не закрывая хэндл и все.

Хм, а идея с хуком на закрытие хороша. Я устанавливал хук на клавиатуру и мышь без прав Админа. Для NtClose нужны права Админа?

Добавлено (30.11.2012, 22:42)
---------------------------------------------
Знаете, что я еще хотел реализовать. Так это смену пользователя.
Есть же программа LogMeIn. С помощью нее можно подключаться к ПК с незалогиненным пользователем.
Если так сделать и автоматом заполнять поля логина/пароля, то можно реализовать быструю смену юзера.
Дело в том, что в лицее, для которого я делаю программу, каждый класс сидит под своим юзером (например 9-А, 9-Б и т.д.).
можно было бы автоматизировать процесс смены пользователей по расписанию.


Сообщение отредактировал fireday - Пятница, 30 Ноября 2012, 22:46
firedayДата: Пятница, 30 Ноября 2012, 20:54 | Сообщение # 38 | Тема: Защита процесса. Защита файла
частый гость
Сейчас нет на сайте
Archido, спасибо большое!
Такого ответа я и ждал!

Реализовал RtlSetProcessIsCritical, но пока только из процесса. Для этого потребовались права Администратора.
Теперь вопрос, если я сделаю это в библиотеке, которую загружу в процесс с админскими правами (ring выше user-a), то выходит моя библиотека приобретает те же права, верно?
Но для инжекта в такой процесс тоже нужны права... Замкнутый круг.
Как можно заинжектить без прав?

А по поводу драйвера, да, это самый разумный подход, но я программирую на visual basic 6.0. На нем не написать драйверы. Вот если бы вы мне помогли с этим. Был бы очень рад.
firedayДата: Пятница, 30 Ноября 2012, 01:19 | Сообщение # 39 | Тема: MS Internet control
частый гость
Сейчас нет на сайте
тут должно быть vbbook.ru

Сообщение отредактировал fireday - Пятница, 30 Ноября 2012, 01:20
firedayДата: Пятница, 30 Ноября 2012, 01:16 | Сообщение # 40 | Тема: Прозрачная форма
частый гость
Сейчас нет на сайте
Я делал выцветание на vb6 вот так:
Code
Private Sub Form_Initialize()
Me.Width = 400 * Screen.TwipsPerPixelX
Me.Height = 200 * Screen.TwipsPerPixelY
Me.Left = (Screen.Width - Me.Width)
Me.BackColor = RGB(1, 1, 1)
ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, ret
SetLayeredWindowAttributes Me.hWnd, Val(RGB(1, 1, 1)), 0, LWA_COLORKEY
End Sub

Code
Public Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "User32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Code
Public Const LWA_COLORKEY = &H1
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000

Вроде все. Мог что-то забыть.


Сообщение отредактировал fireday - Пятница, 30 Ноября 2012, 01:17
Форум игроделов » Записи участника » fireday [57]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг