DisableDebugger
r.i = 0
t=ElapsedMilliseconds()
For i = 0 To 10000
For j = 0 To 10000
r = (r + (i * j) % 100) % 47
Next j
Next i
e=ElapsedMilliseconds()-t
MessageRequester("", StrF(e/1000, 3)+" секунд")
Проверял на компе с процессором близким к «P4-1.8Ггц», т. е. как и автора статьи.
Тест был выполнен за 3 секунды.
Давайте мыслить шире.
PureBasic это не язык, а среда программирования. Если привязываться к IDE, то скажите под какие процессоры / платформы вы сможете создавать программы в популярной на данный момент MS VS? Под линукс и мак чтонить напишите? ))
На языке бейсик можно писать под многие платформы и процессоры, например, под ARM, AVR, PIC и другие.
По большому счету, на бейсике можно разрабатывать под все имеющиеся процессоры / системы.
GTK используется только под Linux, а поскольку эта библиотека там уже присутствует, то за прогой ее тащить не надо.
В Windows, функции кроссплатформенной библиотеки превращаются в вызовы WinAPI, поэтому за прогой тоже ничего тащить не требуется, в отличие от проги на Qt.
Можно создавать программы для платформ Windоws x86, x64; Linuх x86, x64; Maс ОS X Intеl и Mаc ОS Х PоwеrPС и AmigaOS.
Пишите что на C++ можно написать программу даже для малоизвестной ОС? Допустим, но если вы, скажем, написали прогу для винды или линукс, а потом решили портировать ее под эту вашу малоизвестную ОС, сможете ли вы это сделать без правки кода и изучения API этой ОС? Сомневаюсь.
В PureBasic есть библиотека платформенных функций, которая позволяет создавать программы под вышеуказанные платформы и переносить их с одной платформы на другую, как правило, без изменения кода.
На C++ для этого как правило используют Ot, но у него есть огромный минус — нужно тащить за прогой тоны либ. А за программой на PureBasic тащить либы не надо и программы имеют небольшой размер (минимальный, около 800 байт).
Ну во первых, проще и понятнее чем Си, ИМХО.
Во вторых, кроссплатформенный. Реализовать задумку проще и быстрее чем на C++ в Qt.
В третьих, т. к. в процессе компиляции используется ассемблер FASM, поэтому доступны почти все его фишки, которые на C++ будет сложно или невозможно реализовать.
Да, это дыра в безопасности, но популярные антивирусы (NOD 32, др. веб, Касперский) лояльно относятся к загрузке DLL из папки программы с последующей трансляцией вызовов API функций из системных библиотек.
На инжект они поднимают тревогу, особенно Касперский.
Нет, просто был в статусе read-only, а статьи накапливались.
Зря вы думаете что PureBasic ни не что не годен. Он может составить конкуренцию другим языкам, даже таким как C++.
В статье я написал как все это работает.
Понимаете, всем не угодишь, если я бы написал бы чит на Си, нашлись бы люди, которым он непонятен и как сейчас вам бейсик.
И поверьте, на Си этот код был бы более туманным чем на бейсике, для людей не знающих ни тот ни другой ЯП.
Почему будет неудобно пользоваться?
Ведь достаточно поместить DLL в папку с игрой и все, чит запускается при старте игры и работает пока игру не закроют.
Все просто.
Если разобраться то ИМХО даже проще и логичнее чем в VB. Работа с памятью и указателями более развита и дает больше свободы действий. Вообще, область решаемых задач шире чем у VB.
Но синтаксис отличается от того, что в VB.
Как нет указателей?
Найдите в процедуре DeviceIoControl() драйвера строку *Stack = *pIrp\Tail\Overlay\CurrentStackLocation а чуть выше строка Protected *Stack.IO_STACK_LOCATION
Если не поняли, то это доступ к структуре IO_STACK_LOCATION по указателю, хранимому в поле *pIrp\Tail\Overlay\CurrentStackLocation
С чего вы решили что издеваюсь? Разве написав его на др. языке, что-то изменилось бы?
Если вам этот чит не нужен и вы не планируете писать свои, работающие по той же схеме, что что вы здесь делаете?
В процессе компиляции задействован FASM, поэтому допустимы не только асм. вставки, но и директивы и макросы FASM'а.
Например, в начале кода драйвера есть строка для FASM'а.
Разве я писал об создании драйверов на профессиональном уровне и призывал всех с Сей и асма переходить на бейсик?
Я извиняюсь, вы на каком диалекте бейсика когда-то кодили?
Судя по всему, это QBasic или сродни ему. PureBasic намного продвинутее его. Релиз данной версии был буквально месяц назад.
И на PureBasic есть относительно серьезные программы, к примеру, торрент клиент — pbTorrent.
DisableDebugger
r.i = 0
t=ElapsedMilliseconds()
For i = 0 To 10000
For j = 0 To 10000
r = (r + (i * j) % 100) % 47
Next j
Next i
e=ElapsedMilliseconds()-t
MessageRequester("", StrF(e/1000, 3)+" секунд")
Проверял на компе с процессором близким к «P4-1.8Ггц», т. е. как и автора статьи.
Тест был выполнен за 3 секунды.
PureBasic это не язык, а среда программирования. Если привязываться к IDE, то скажите под какие процессоры / платформы вы сможете создавать программы в популярной на данный момент MS VS? Под линукс и мак чтонить напишите? ))
На языке бейсик можно писать под многие платформы и процессоры, например, под ARM, AVR, PIC и другие.
По большому счету, на бейсике можно разрабатывать под все имеющиеся процессоры / системы.
В Windows, функции кроссплатформенной библиотеки превращаются в вызовы WinAPI, поэтому за прогой тоже ничего тащить не требуется, в отличие от проги на Qt.
Пишите что на C++ можно написать программу даже для малоизвестной ОС? Допустим, но если вы, скажем, написали прогу для винды или линукс, а потом решили портировать ее под эту вашу малоизвестную ОС, сможете ли вы это сделать без правки кода и изучения API этой ОС? Сомневаюсь.
В PureBasic есть библиотека платформенных функций, которая позволяет создавать программы под вышеуказанные платформы и переносить их с одной платформы на другую, как правило, без изменения кода.
На C++ для этого как правило используют Ot, но у него есть огромный минус — нужно тащить за прогой тоны либ. А за программой на PureBasic тащить либы не надо и программы имеют небольшой размер (минимальный, около 800 байт).
Во вторых, кроссплатформенный. Реализовать задумку проще и быстрее чем на C++ в Qt.
В третьих, т. к. в процессе компиляции используется ассемблер FASM, поэтому доступны почти все его фишки, которые на C++ будет сложно или невозможно реализовать.
На инжект они поднимают тревогу, особенно Касперский.
Зря вы думаете что PureBasic ни не что не годен. Он может составить конкуренцию другим языкам, даже таким как C++.
Понимаете, всем не угодишь, если я бы написал бы чит на Си, нашлись бы люди, которым он непонятен и как сейчас вам бейсик.
И поверьте, на Си этот код был бы более туманным чем на бейсике, для людей не знающих ни тот ни другой ЯП.
Ведь достаточно поместить DLL в папку с игрой и все, чит запускается при старте игры и работает пока игру не закроют.
Если разобраться то ИМХО даже проще и логичнее чем в VB. Работа с памятью и указателями более развита и дает больше свободы действий. Вообще, область решаемых задач шире чем у VB.
Но синтаксис отличается от того, что в VB.
Найдите в процедуре DeviceIoControl() драйвера строку *Stack = *pIrp\Tail\Overlay\CurrentStackLocation а чуть выше строка Protected *Stack.IO_STACK_LOCATION
Если не поняли, то это доступ к структуре IO_STACK_LOCATION по указателю, хранимому в поле *pIrp\Tail\Overlay\CurrentStackLocation
И с чего вы решили что нет адресной арифметики?
Если вам этот чит не нужен и вы не планируете писать свои, работающие по той же схеме, что что вы здесь делаете?
И для системы все рано, бейсик это или Си.
Подпись драйвера выходит за рамки этой статьи.
Например, в начале кода драйвера есть строка для FASM'а. Думаю что означает и так понятно.
Я извиняюсь, вы на каком диалекте бейсика когда-то кодили?
Судя по всему, это QBasic или сродни ему. PureBasic намного продвинутее его. Релиз данной версии был буквально месяц назад.
И на PureBasic есть относительно серьезные программы, к примеру, торрент клиент — pbTorrent.