
alibek писал(а):Approximator, таковые функции описаны не в SDK, а в DDK, которого у меня нет (а MSDN еще не имею), поэтому я могу и ошибаться, но думаю там используются такие типы и структуры данных, которые не получится использовать в VB.
Кроме того, скорее всего эти функции должны вызываться на более низком уровне, нежели уровень прикладных программ.
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, ByVal lpNumberOfBytesWritten As Long) As Long
The ReadProcessMemory function reads data from an area of memory in a specified process. The entire area to be read must be accessible, or the operation fails.
The WriteProcessMemory function writes data to an area of memory in a specified process. The entire area to be written to must be accessible, or the operation fails.
MOV писал(а):Я так и не понял проблема решилась или нет. Я как-то тоже столкнулся с такой проблемой - надо было пройти игрушку (простую типа компьютерщик, там надо типа взломать банкподбором кода при чем правильная комбинация заранее известна, надо только решить головоломку)
Так вот я решил сделать программульку, которая бы вставляла бы нужные цыфры в нужные места, а тут эти лэйблыи так как хендла нет решил, что это несовсем реально, тем более, если представить что лэйбл, по своей сути (когда компилируется) может ведь работать как принт (Me.Print "Хрен ты меня изменишь")
и таким образом, вообще не представлять из себя объект.
Хотя у меня такой вопрос давно был, не помню, может WinSpy какой-нить и видит все-таки Label как объект, ну или как окно (кому как нравится).
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pId)
Debugging
A debugger is an application that enables a developer to observe and correct programming errors. This overview describes the debugging support provided by the Win32 API.
Debugging Functions
The following functions are used with debugging.
ContinueDebugEvent
DebugActiveProcess
DebugBreak
FatalExit
FlushInstructionCache
GetThreadContext
GetThreadSelectorEntry
IsDebuggerPresent
OutputDebugString
ReadProcessMemory
ReadProcessMemoryVlm
SetDebugErrorLevel
SetThreadContext
WaitForDebugEvent
WriteProcessMemory
WriteProcessMemoryVlm
Hooks
A hook is a point in the system message-handling mechanism where an application can install a subroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure.
This overview describes hooks and explains how to use them in a Win32-based application.
Hook Functions
The following functions are used with hooks.
CallMsgFilter
CallNextHookEx
CallWndProc
CallWndRetProc
CBTProc
DebugProc
ForegroundIdleProc
GetMsgProc
JournalPlaybackProc
JournalRecordProc
KeyboardProc
LowLevelKeyboardProc
LowLevelMouseProc
MessageProc
MouseProc
SetWindowsHookEx
ShellProc
SysMsgProc
UnhookWindowsHookEx
BP писал(а):Приложения выполняются в Ring 3. А RING 5 IMHO вообще не бывает.
BP писал(а):Процессоры Intel имеют 4 уровня привелегий, но Микрософт использует только два: 0 и 3.
Вроде для совместимости с какой то там платформой. Какой не помню.
Approximator писал(а):Это связано с типом адресации во Flat-памяти. Дело в том, что есть такая штука, как Fix Up's Table, эта ифа используется для размещения проги, если в её адресном пространстве она не ложится ровно... вот здесь и работают "привилегии"...
BP писал(а):Вот что у Зубкова по этому поводу:
Защита может действовать как на уровне сегментов, так и на уровне страниц, ограничивая доступ в зависимости от уровня привилегий (4 уровня привилегий для сегментов и два для страниц).
Надеюсь я правильно понял.
Если используется не сегментная, а плоская модель памяти, то сегментыные привилегии не работают. Остаются только страничные.
BP писал(а):А разве то что сказал работает в Windows, использующей плоскую модель памяти?
===
Зубков.
---
Для обычных задач программирования нам не потребуется все многообразие возможностей адресации. Все, что нам нужно, — это удобный неограниченный доступ к памяти. Поэтому мы будем рассматривать простую модель памяти — так называемую модель flat, в которой базы всех регистров установлены в ноль, а лимиты — в 4 Гб. Именно в такой ситуации окажется, что можно забыть о сегментации и пользоваться только 32-битными смещениями.
Для создания flat-памяти нам потребуются два дескриптора с нулевой базой и максимальным лимитом — один для кода и один для данных.
===
BP писал(а):WASM.RU > СТАТЬИ > Секреты Win32
Приложение Windows «голыми руками»
===
Образ программы составлен из одного или нескольких объектов или секций, которые иногда называют по старинке сегментами. Однако они не имеют ничего общего со старой сегментной моделью, также, впрочем, как и с объектами в том значении, как они используются в языках программирования. Поэтому для обозначения разделов образа программы PE-файла лучше использовать термин «секции».
Разделение на секции нацелено главным образом на оптимизацию управления памятью Windows. По этой причине размеры загруженных в оперативную память секций должны быть кратны размеру страницы памяти (обычно 4 Кб) и выровнены по ее границе. Записанные в файл секции должны быть выровнены по границе «файловых страниц», размер которых кратен размеру сектора (512 байт) - это также сделано для оптимизации загрузки.
BP писал(а):WASM.RU > СТАТЬИ > Секреты Win32
Приложение Windows «голыми руками»
BP писал(а): Согласись, VB сложно назвать профессиональным языком программирования и проявить творчество на нём крайне тяжело. Писать программы можно только по шаблону. Шаг влево, шаг вправо - крах или использование других языков. API - основа программирования под Window's, играют в нём побочную роль и не документированы вовсе.
BP писал(а): - API прекрасно документирован для Си++. Если весь язык построен на технологии COM, то это достоинство плавно перетекает в недостаток. А если сравнить эти "достоинства" с его недостатками? Такими как ложное направление стиля программирования, низкая скорость работы приложения и зависимость от виртуальной машины? Отсутсвие даже отдалённых представлений об устройстве процессора и памяти?
- У программиста на языке БЕЙСИК просто нет другого выбора. Или MS BASIC или ничего.
- Такое ощущение что все твои доводы взяты с какого то общего шаблона. Неправда ли сильно смахивает на "Мышление в стиле Visual Basic"?
BP писал(а):- Но для VB они не документированы.
BP писал(а):- MSVBVM - Microsoft Visual Basic Virtual Machine
BP писал(а):- Поэтому и не понял.
BP писал(а):- Опять шаблон. У тебя там справочника случайно специального нет. Отмазки для VB-ламеров.
tyomich писал(а):Если язык скрывает от программиста неинтересные ему детали устройства компьютера, это только во благо
BP писал(а):- Ну и с чем?
BP писал(а):- Не считаю VB эталоном языка БЕЙСИК.
BP писал(а):- Раньше БЕЙСИК изучали в ПТУ, а Паскаль в ВУЗ'ах. Сейчас VB изучают в школе. БЕЙСИК - Многоцелевой язык символических инструкций для начинающих. Так сказать введение в программирование. Считаю что начинать программистский путь нужно именно с него. А доказывать его крутость могут действительно только "ацтойне ламеры".
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 4