Pull to refresh
12
0
Send message
Портировал тест на PuireBasic.

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

И с чего вы решили что нет адресной арифметики?
Я не искал их, а скопировал из таблицы ArtMoney. Так проще и быстрее.
С чего вы решили что издеваюсь? Разве написав его на др. языке, что-то изменилось бы?
Если вам этот чит не нужен и вы не планируете писать свои, работающие по той же схеме, что что вы здесь делаете?
Какая разница на чем написан чит?
Странная логика, ведь после компиляции уже неважно на чем написано.
И для системы все рано, бейсик это или Си.
Переводил ОС в тестовый режим и запускал.
Подпись драйвера выходит за рамки этой статьи.
В процессе компиляции задействован FASM, поэтому допустимы не только асм. вставки, но и директивы и макросы FASM'а.
Например, в начале кода драйвера есть строка для FASM'а.
!section '.code' code readable executable align 8
Думаю что означает и так понятно.
Разве я писал об создании драйверов на профессиональном уровне и призывал всех с Сей и асма переходить на бейсик?

Я извиняюсь, вы на каком диалекте бейсика когда-то кодили?
Судя по всему, это QBasic или сродни ему. PureBasic намного продвинутее его. Релиз данной версии был буквально месяц назад.
И на PureBasic есть относительно серьезные программы, к примеру, торрент клиент — pbTorrent.
1

Information

Rating
Does not participate
Registered
Activity