Скрытие (шифрование) данных программы - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день. Имеется программа, которая отображает картинки, тексты, воспроизводит музыку (музыку через АPI). Всё это лежит в коренной папке программы. Если скомпилировать exe файл из проекта vb, то все файлы видны пользователям, которые могут редактировать их. Так вот такой вопрос: можно ли их, эти файлы картинок, текста, музыки, как-нибудь зашифровать от редактирования, может в какой-нибудь формат переделать, но что бы exe мог спокойно работать с ними?

Решение задачи: «Скрытие (шифрование) данных программы»

textual
Листинг программы
Attribute VB_Name = "modSInst"
Option Explicit
Global Const r = "/", z = ",", k = "\", NameFilter = "[!0-9!a-z!A-Z!а-я!А-Я!Ё!ё!_]"
Dim clsSInst As New clsSInst
 
Sub CallArg(ByVal ArgLine As String)
    Dim f&, j$(1), Arg(), Result As Variant
    On Error Resume Next
    For f = 1 To Len(ArgLine):  If Mid$(ArgLine, f, 1) Like NameFilter Then Exit For
        j(0) = j(0) & Mid$(ArgLine, f, 1)
    Next: j(1) = Trim(Mid$(ArgLine, f))
    If Asc(j(1)) = Asc("=") Then
        Result = CallByName(clsSInst, j(0), VbLet, Trim$(Mid$(j(1), 2)))
    Else
        Arg = TrimArrVar(Split(j(1), z))
        Result = CallByName(clsSInst, j(0), VbMethod, Arg)
        If Err.Number = 450 Then
            Result = CallByName(clsSInst, j(0), VbLet, Arg(0))
            Exit Sub
        End If
    End If
End Sub
 
Sub Main()
    Dim Arg() As Variant, j$(), f&, u&
    
    Dim Command$ 'Тэстовая часть
    Command$ = "/InitDir=C:\Documents and Settings\All Users\Документы\Моя музыка\Mp3" & _
    "/ZipName=C:\Documents and Settings\User32\Рабочий стол\Новая папка (5)\Новая--папка\Сжатая ZIP-папка.zip" & _
    "/OutDir=C:\Documents and Settings\User32\Рабочий стол\Новая папка (99)" & _
    "/ToZip " & _
    "2 Eivissa - Uh La La La (DJ Nejtrino & DJ Baur Summer Ready Mix).mp3," & _
    "Настройки [2г].zip," & _
    "Новая папка\2014-06-08_065236.jpg," & _
    "03 - Мировые инструментальные хиты  (audiopoisk.com).mp3"
    
    '
    '----------------------------------
    On Error Resume Next: DeleteSetting App.Path
    On Error GoTo 0
    j = TrimArrStr(Split(Command$, r))
    For f = 0 To UBound(j):  If Len(j(f)) Then CallArg j(f)
    Next
 
End Sub
 
Function TrimArrVar(Arr) As Variant()
    'Удаляет передние и задние пробелы в массиве
    '
    Dim f&: ReDim v(UBound(Arr)): For f = 0 To UBound(Arr): v(f) = Trim(Arr(f)): Next: TrimArrVar = v
    TrimArrVar = v
End Function
 
Function TrimArrStr(Arr) As String()
    'Удаляет передние и задние пробелы в списке
    '
    Dim f&, j$(): j = Arr: For f = 0 To UBound(Arr): j(f) = Trim(Arr(f)): Next: TrimArrStr = j
End Function

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы