- [Digital Virus Labs #11] - [Page 35] - Теория заражения Palm (c) by ULTRAS/MATRiX В этой статье будет описываться теория заражения программ, которые были составлены пользователем Palm. Многие user'ы которые используют Palm Pilot, создают свои программы на языке basic и интерпретируют (interpreter) их с помощью HotPaw (один из самых популярных interpreter среди пользователей PalmOS). Большое количество исходников программ, написаных на бейсике вы можете найти в инете. Чтобы user мог использовать свою программу и запускать ее с помощью HotPaw, ее надо хранить в MemoPad. MemoPad - Это программа в которой храниться текстовая информация пользователя и программы на языке Basic(!). Значит мы можем заражать файлы HowPaw basic в MemoPad. Для этого нам нужно: 1. Искать в MemoPad программы. 2. Проверить, это программа или просто текстовый файл. 3. Проверить файл на длину, так, чтобы туда мог влезть наш вирус. Файл не должен (program+virus) превышать 4кб 3. Проверить на зараженность. 4. И если все нормально, то заражать текстовый файл с программой. Нижеописаные команды осуществляют поиск в MemoPad и проверку файлов на длину, первые байты и другое гггг. db.find("memo", t$) '- ищем memo с названием - t$, возвращается первый '- найденый в рекурсивном сканинге файл '- возвращает -1 если ни хрена не найдено db.find("memo", t$, 0) '- поиск с параметрами db.len("memo", n) '- возвращает длину найденого в memopad файла - #n db$("memo", n, 0) '- возвращает первую строку из memopad - #n db$("memo", n) '- возвращает следующую строку - #n db$("memo", n, k) '- возвращает текст по байтам(?) - k '- прим: параматре n должен быть single variable, '- а не expression Так нам надо открыть файл находящийся в memopad: open "memo",n as #1 '- открывает memopad, где n - номер ячейки для записи '- и чтения (r/w). Используйте db.find() для '- получения номера ячейки (n) из title$ Запись и проверку в файле мы использовать с помощью операторов print и input '- a$ - имя файла input #1, a$ '- инпут одной строки из memopad указаной ячейки '- x$ - имя файла print #1, x$ '- принт для записи в memopad указаную ячейку '- лимит 4кб. '- используйте db.len чтобы проверить длину. Все команды в HotPaw Basic почти такие, как и в простом QBasic для PC, так что проблем с написанием, я думаю у вас не должно возникнуть. Несколько Примеров ~~~~~~~~~~~~~~~~~~ # writing to the MemoPad # create filez "ultras" open new "memo","ultras" as #4 m = db.index : ' memo number for d = 0 to 180 step 13 r = "matrix kewl" print #4, r next d close #4 end # MemoPad read # open filez ultras and file title m = db.find("memo","ultras") if (m < 0) then end : ' filez not found open "memo",m as #1 input #1,title$ input #1,a$ display a$ :' display 1st non-title line close #1 end Это просто идея... :))) Другие статьи посвященные этой платформе читайте в Xine#5. ULTRAS [MATRiX]