¿Cómo proteger mis recursos de la piratería?
============================================= == =============== ============
.Versión 2
.Soporta biblioteca iext
p>.Biblioteca de soporte dp1
.Empaquetado de inicio de subprograma
.Número de archivos de variables locales, entero
.Archivo de variables locales nombre, tipo de texto
.Lista de archivos de variables locales, tipo de texto
.Nombre de división de variables locales, texto, "0"
.Variable de bucle de variables locales, entero
. Datos temporales de variable local, conjunto de bytes
. Longitud temporal de la variable local, número entero
. Variable local WriteList, escriba texto
. Variable local WriteFileNumber, número entero
. Lista de cifrado de variables locales, grupo de bytes
. Variable local Longitud de la lista, número de bytes
. Información de archivo de variable local, conjunto de bytes
Número de archivos = 0
Nombre de archivo = Buscar archivo (obtener directorio en ejecución () "\data\*.*", 32) p>
.Determina el primero del bucle (nombre de archivo ≠"")
. Si es verdadero (nombre de archivo ≠ ".")
y nombre de archivo ≠ ".")
Número de archivos = Número de archivos 1
Lista de archivos. = Lista de archivos nombre de archivo # carácter de nueva línea
.Finalizar si es verdadero
nombre de archivo = buscar archivo (, )
.determinar el final del bucle ()
Barra de progreso 1.posición mínima = 0
Barra de progreso 1.posición máxima = número de archivos
Redefinir matriz (nombre dividido, falso, número de archivos) p>
Nombre dividido = texto dividido (lista de archivos, # nueva línea,)
Si es verdadero (escriba el archivo (tome el directorio en ejecución ()) "\bak\" en el texto (tome la fecha (tome la fecha). hora actual ()) ".mmc", a byteset ("")) = false)
Nombre dividido = texto dividido (lista de archivos, # nueva línea, )
.) = false)
Cuadro de mensaje ("¡Error en la copia de seguridad de los datos!", 0, "¡Pista!")
Cerrar todo ()
Fin () p>
.Si es verdadero fin
Escribir número de archivo = abrir archivo (directorio en ejecución () "\bak\" en texto (hasta la fecha (hasta la hora actual ()) ".mmc", , )
. Encabezado de bucle de recuento (número de archivos, variable de bucle)
Barra de progreso 1. posición = variable de bucle
Etiqueta de progreso = Obtener directorio de ejecución (. ) "\data\" Nombre dividido [variable de bucle]
.
Nombre dividido [variable cíclica]
Datos temporales = datos comprimidos (leer archivo (Obtener directorio de ejecución () "\data\" Nombre dividido [variable cíclica]))
Longitud temporal = tomar la longitud del conjunto de bytes (datos temporales)
Mover la posición de lectura/escritura (escribir en el número de archivo, #fin del archivo, 0)
Escribir conjunto de bytes (escribir en el número de archivo , datos temporales)
Escribir en la lista = escribir en la lista nombre dividido [variable de bucle] "|" en texto (longitud temporal) # Carácter de nueva línea
. Contar el final del bucle ()
Lista cifrada = datos cifrados (a conjunto de bytes (a texto (número de archivos) # lista de escritura de saltos de línea), "Ingeniería de software M2C", 2)
Longitud de la lista = datos cifrados (a conjunto de bytes (a texto (tome la longitud del conjunto de bytes (lista cifrada)),"M2C Software Engineering", 2)
Longitud de la lista = datos cifrados (a conjunto de bytes (a texto ( tomar la longitud del conjunto de bytes (lista cifrada)) Tomar la longitud del conjunto de bytes (lista cifrada)), "Ingeniería de software M2C", 2)
Información del archivo = al conjunto de bytes (al texto (longitud de la lista) # saltos de línea ) Lista de cifrado
Mover la posición de lectura/escritura (escribir número de archivo, #encabezado de archivo, 0)
. Si es verdadero (inserte el conjunto de bytes (escriba el número de archivo, la información del archivo) = falso)
Cuadro de mensaje ("¡Error en la copia de seguridad!", 0, "¡Preguntar!")
Cerrar todo ()
Fin ()
.Si es verdadero fin
Cerrar todo ()
Fin ()
==============================
.Versión 2
.Soporte biblioteca dp1
.Clase de lectura MPK de Assembly, pública
.Ruta del archivo variable de Assembly, tipo de texto
.Contraseña del archivo variable de Assembly, tipo de texto
. Número de archivo MPK de la variable de ensamblaje, número entero
Longitud inicial de la variable de ensamblaje, número entero
. Número de archivos de variables de ensamblaje, número entero
. Información del archivo MPK de la variable de ensamblaje, información del archivo, "0"
.Si la variable de ensamblaje se destruye, tipo lógico
.Subrutina _Initialize, al crear un programa basado en esta clase Objeto, este método se llamará automáticamente
.
Subrutina _Destroy, , , este método se llamará automáticamente cuando un objeto basado en esta clase se destruya antes de su creación
Se destruye = Verdadero
Longitud inicial = 0
p>
Número de archivos = 0
Redefinir matriz (información de archivo MPK, falso, 0)
Carga de subrutina, lógica, pública, carga de archivos MPK empaquetados
. p>. Parámetro Archivo MPK, texto, ruta del archivo MPK
Parámetro Contraseña, texto, nulo, contraseña del archivo MPK
. La variable local devuelve un valor lógico.
. .Texto temporal variable local, tipo de texto
. Longitud del encabezado de la variable local, número entero
. Cabezal de lectura de variable local, tipo de texto
División temporal de variable local, tipo de texto, "0"
Variable de bucle de variable local, entero
. Las variables locales se dividen nuevamente, tipo de texto, "0"
Lógica de retorno = verdadero
Ruta del archivo = archivo MPK
Contraseña del archivo = contraseña
. Si es verdadero (elimine todo null(filepassword)="")
filepassword = #contraseña predeterminada
. Si es verdadero final
' --------------------------------------- ----------------
Determinar el inicio (si el archivo existe (ruta del archivo) = falso)
Lógica de retorno = falso<. /p>
. Predeterminado
Cerrar archivo (número de archivo MPK)
Número de archivo MPK = Abrir archivo (ruta del archivo, # para lectura, # prohibir escritura)
. Se inicia el juicio (número de archivo MPK = 0)
Lógica de retorno = false
Cerrar el archivo (número de archivo MPK)
' ------- ------------------------------------------------- - --------
.Default
Mover al principio del archivo (número de archivo MPK)
Texto temporal = Lectura de una sola línea (MPK número de archivo) )
.Iniciar juicio (tome el lado izquierdo del texto (texto temporal, 3) ≠ "MPK")
Lógica de retorno = false
Cerrar el archivo (número de archivo MPK)
'-------------------------------- -------- - -------------------------
.Predeterminado
Longitud del encabezado = a entero (a texto (descifrar datos (a conjunto de bytes (buscar texto a la derecha (texto temporal, buscar longitud de texto (texto temporal) - 3))), contraseña de archivo, 2)))
Inicial longitud = recuperar la longitud del conjunto de bytes (al conjunto de bytes (texto temporal + # líneas nuevas)) Longitud del archivo de encabezado
.
OK inicio (longitud del encabezado = 0)
Lógica de retorno = false
Cerrar archivo (número de archivo MPK)
' -------- - -------------------------------------------------- -------
.Default
Leer encabezado de archivo = texto (datos descomprimidos (datos descifrados (leer conjunto de bytes (número de archivo MPK, longitud del encabezado del archivo), contraseña del archivo , 2))
.Juez de inicio (read head = "")
Lógica de retorno = false
Cerrar el archivo (número de archivo MPK)
'----------------------------------------- ---- -------- ----------------
.Default
división temporal = texto dividido (leer encabezado de archivo, #carácter de nueva línea,)
Número de archivos = Obtener miembros de la matriz (división temporal)
Redefinir la matriz (información del archivo MPK, falso, número de archivos)
.Contar encabezado de bucle (número de archivos, variable de bucle)
Manejar eventos ()
Dividir de nuevo = Dividir texto (División temporal [variable de bucle], #lista separada,) p>
Información del archivo MPK [variable de bucle]. nombre de archivo = dividir de nuevo [1]
Información del archivo MPK [variable de bucle] = entero (dividir de nuevo [2])
Información del archivo MPK [variable de bucle]. Resumen del archivo = dividir de nuevo [3]
Fin del bucle de conteo ()
Fin del juicio
. Fin del juicio
.Fin del juicio
.Fin del juicio
Fin del juicio
Retorno (lógica de retorno)
>.Subrutinas de lectura, conjunto de bytes, público, leen el archivo en el paquete MPK, devuelven el conjunto de bytes del archivo si tiene éxito y devuelven el conjunto de bytes vacío si falla
Nombre del archivo de parámetros, texto,. , el nombre del archivo correspondiente en el paquete MPK
. Los parámetros fuerzan la lectura, lógico, nulo, el valor MD5 del archivo se verificará durante el proceso de lectura. Si los valores son inconsistentes, el. Se puede forzar la lectura del comando, pero no hay garantía de que el archivo sea correcto
. La variable local devuelve datos, conjunto de bytes
Longitud temporal de la variable local, entero largo
. Variable de bucle de variable local, entero
Datos temporales de variable local, conjunto de bytes
Datos de retorno = al conjunto de bytes ("")
. Si es verdadero (si está destruido = falso)
Longitud temporal = 0
Cuente la primera vez del bucle (número de archivos, variables del bucle)
Manejar. eventos ()
.Inicio del juicio (información del archivo MPK [variable de bucle]. Nombre de archivo = nombre de archivo)
Evento de proceso ()
Mover la lectura/ posición de escritura (número de archivo MPK, #encabezado de archivo, longitud inicial, longitud temporal)
datos temporales = conjunto de bytes para leer (número de archivo MPK, información del archivo MPK [variable de bucle].
Tamaño del archivo)
Inicio del juicio (obtener resumen de datos (datos temporales) = información del archivo MPK [variable de bucle]. Resumen del archivo)
Datos devueltos = datos descomprimidos (datos temporales) <. /p>
.Valor predeterminado
.Si es verdadero (forzar lectura = verdadero)
Datos de retorno = datos descomprimidos (datos temporales)
.End si es verdadero
.Fin del juicio
Salir del bucle ()
.Valor predeterminado
Longitud temporal = Longitud temporal del archivo MPK información [variable de bucle] .Tamaño del archivo
.Fin del juicio
.Fin del bucle de conteo ()
.Fin si es verdadero
Regresar (datos devueltos)
Número de subrutina, entero, público, devuelve el número de archivos en el paquete MPK, si falla, devuelve 0
Devuelve (número de archivos) p. >
. Lista de subrutinas, texto, público, devuelve la lista de archivos en el paquete de software MPK. Devuelve con éxito una lista de archivos delimitada por nueva línea. El error devuelve texto vacío.
. Texto de retorno de variable local, tipo de texto
. Variable local n, entero
Devuelve texto = ""
. Si es verdadero (si destruir = falso)
.Iniciar recuento de bucles (número de archivos, n)
Procesar evento ()
Devolver texto = Devolver texto Información del archivo MPK[n]. Nombre de archivo # nueva línea
. Fin del bucle de conteo()
. Si es verdadero, final
Regresar (devolver texto)
.Subrutina destruir, público, destruir el archivo MPK cargado, continuando con el la llamada requiere recarga
Es destruir = verdadero
Longitud inicial = 0
Número de archivos = 0
Cerrar archivo (número de archivo MPK )
Redefinir matriz (información del archivo MPK, falso, 0)
.