社区
VB基础类
帖子详情
VB在函数和过程中如何调用数组,并在数组中写入返回值?
lanman
2003-10-17 08:53:24
格式是什么,谢谢.
...全文
92
1
打赏
收藏
VB在函数和过程中如何调用数组,并在数组中写入返回值?
格式是什么,谢谢.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goodname008
2003-10-17
打赏
举报
回复
Option Explicit
Private Sub Command1_Click()
Dim arr(10) As String, i As Long
Test arr()
For i = 0 To UBound(arr)
Debug.Print arr(i)
Next i
End Sub
Private Sub Test(ByRef arr() As String)
Dim i As Long
For i = 0 To UBound(arr)
arr(i) = i
Next i
End Sub
vb
ini非系统读写
函数
这个是一个配置文件读写的两个
函数
,目标文件格式与ini相类似,支持注释(只要不含"=""[""]"三个敏感字符就行)。读取时文件将以匹配Section(第几个要取决于有重复Section时,那个Section
中
第一个出现了目标Key)和第一个Key作为找寻方法,给出目标键第一个等号右面的数据(删两端空格后)。写
函数
支持自动建立不存在的Section和Key(也支持自动建立文件),并在目标Section内容后追加新Key,或在整个文件后追加新Section和新Key。
函数
一次只能写一个键值。
返回值
说明:
返回值
两侧是#,是
函数
的返回信息,"#Appended#"表示原先不存在,新追加了键值,"#Changed#"是指原先存在,键值被更新。其他的英文大家都能看懂,就不解释了。 还有,FilePath、KeyName、SectionName不能为空的哦,否则会出现路径文件错误,或只是在文件
中
写入
等号 再来一个还有:
函数
区分大小写的。。大家可以用Ucase之类的让它不区分。 欢迎测试!
中
文API支持库(1.0-0
_取鼠标句柄() 获取目前选择的鼠标指针的句柄。获取目前选择的鼠标指针的句柄。这个
函数
返回的是当前线程的指针——不能获取其他应用程序的指针。 _寻找窗口() 寻找窗口列表
中
第一个符合指定条件的顶级窗口(在
vb
里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行
中
vb
执行程序的一部分。获得句柄后,可用api
函数
GetWindowText取得这个窗口的名称;该名也是应用程序的标题)。找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError。 _广播系统消息() 将一条系统消息广播给系统
中
所有的顶级窗口。大于零表示成功;-1表示出错。如设置了BSF_QUERY,而且至少有一个消息接收者返回零,那么这个
函数
返回零。 _取消息鼠标位置() 取得消息队列
中
上一条消息处理完毕时的鼠标指针屏幕位置。
返回值
,X坐标对应于结果值的低字,Y坐标对应于高字。 _取消息时间() 取得消息队列
中
上一条消息处理完毕时的时间。返回一个时间,表示为自系统启动以来经历的毫秒数。 _投递消息() 将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理
过程
中
得到处理。在那个时候,会随同投递的消息
调用
指定窗口的窗口
函数
。特别适合那些不需要立即处理的窗口消息的发送。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。 _投递线程消息() 将一条消息投递给应用程序。这条消息由应用程序的内部GetMessage循环获得,但不会传给一个特定的窗口。如消息投递成功,则返回TRUE(非零)。会设置GetLastError。 _注册窗口消息() 获取分配给一个字串标识符的消息编号。
返回值
为&C000 到 &FFFF之间的一个消息编号。零意味着出错。注:如果没有一个子类处理程序的帮助,这个
函数
就没有什么用。 _回应消息() 如将消息传送给位于不同进程的一个窗口,通常第一个进程会暂时挂起,直到另一个进程
中
的窗口
函数
完成操作为止。在目标进程的窗口
函数
完成之前,另一个进程可用这个
函数
向第一个进程返回一个结果,使之能继续进行。
返回值
,如准备答复的消息是由另一个进程发来的,则返回TRUE。如果它是从同一个进程
中
发出来的,则返回FALSE(此时,该
函数
没有任何效果)。 _发送消息()
调用
一个窗口的窗口
函数
,将一条消息发给那个窗口。除非消息处理完毕,否则该
函数
不会返回。
返回值
由具体的消息决定。 _发送回调消息() 将一条消息发给窗口。该
函数
最大的特定是可以立即返回。目标窗口
函数
执行完毕后,会用回调
函数
的形式将结果返回。
返回值
,TRUE表示成功,FALSE表示失败。会设置GetLastError。 _发送超时消息() 向窗口发送一条消息。如窗口位于不同的线程
中
,则利用这个
函数
可以指定一个超时值,以便在另一个进程挂起的时候防止
调用
进程也永远挂起。成功时返回TRUE,失败时返回FALSE。会设置GetLastError。 _发送通知消息() 向窗口发送一条消息。如目标窗口位于同
调用
方相同的线程内,则这个
函数
会表现为SendMessage
函数
。而且除非消息得到处理,否则
函数
不会返回。如目标窗口从属于一个不同的线程,则
函数
会立即返回。返回TRUE表示成功,FALSE表示出错。会设置GetLastError。 _关闭内核对象() 关闭一个内核对象。其
中
包括文件、文件映射、进程、线程、安全和同步对象等。
返回值
非零表示成功,零表示失败。会设置GetLastError。 _比较文件时间() 根据FILETIME结构的信息,对比两个文件的时间。如两个时间相等,就返回零;如lpFileTime1小于lpFileTime2,返回-1;如lpFileTime2小于lpFileTime1,返回1。 _删除文件()
返回值
非零表示成功,零表示失败。会设置GetLastError。 _关闭搜索句柄() 关闭由FindFirstFile
函数
创建的一个搜索句柄。
返回值
非零表示成功,零表示失败。会设置GetLastError。 _刷新文件缓冲区() 针对指定的文件句柄,刷新内部文件缓冲区。
返回值
非零表示成功,零表示失败。会设置GetLastError。 _刷新文件映射缓冲区() 将
写入
文件映射缓冲区的所有数据都刷新到磁盘。
返回值
非零表示成功,零表示失败。会设置GetLastError。 注解:如与远程系统建立了文件映射,那么虽然这个
函数
可保证数据已在当前系统
写入
,但不能保证数据实际
写入
远程系统的磁盘——除非用FILE_FLAG_WRITE_THROUGH 选项打开文件。该选项的作用是禁止写延迟,所有更新的数据都必须立即
写入
磁盘。 _取可执行文件类型() 判断指定文件是哪一种类型的可执行文件。
返回值
非零表示成功,零表示失败。 _取压缩文件尺寸() 判断一个压缩文件在磁盘上实际占据的字节数。返回文件长度。&HFFFFFFFF表示出错。注意如lpFileSizeHigh不为NULL,且结果为&HFFFFFFFF,那么必须
调用
GetLastError,判断是否实际发生了一个错误,因为这是一个有效的结果。 注解:如磁盘卷已被压缩,可检查这个
函数
的结果是否与GetFileSize
函数
的结果有异,从而判断文件是否也被压缩(如有异,表明文件已被压缩)。 _取当前目录()
返回值
为写到lpBuffer的字节数。如nBufferLength的长度不够,不足以容纳目录,则
返回值
是必要的缓冲区长度(要求至少这个长度),其
中
包括空
中
止字符。零表示失败。会设置GetLastError。 _取磁盘剩余容量() 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量。
返回值
非零表示成功,零表示失败。会设置GetLastError。 注解:在采用FAT16格式的windows95系统
中
,如一个驱动器(分区)的容量超过了2GB,则不应使用这个
函数
。此时,这个
函数
能识别的最大分区容量只有2GB。 _取驱动器类型() 判断一个磁盘驱动器的类型。
返回值
,如驱动器不能识别,则返回零。如指定的目录不存在,则返回1。如执行成功,则用下述任何一个常数指定驱动器类型:DRIVE_REMOVABLE, DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM 或 DRIVE_RAMDISK。 _取压缩文件全名() 取得一个压缩文件的全名。文件必须是用 COMPRESS.EXE 程序压缩的,而且在压缩时适用/r选项。
返回值
,1表示成功,LZERROR_BADVALUE 表示失败。 _取文件属性() 取指定文件的属性。
返回值
,-1表示出错。如返回包含了标志的一个Long值,则指定文件的属性。其
中
的标志对应于带有FILE_ATTRIBUTE_*前缀的常数。具体参考BY_HANDLE_FILE_INFORMATION结构的File Attribute Types table表格。 _取文件长度() 返回文件长度。&HFFFFFFFF表示出错。注意如lpFileSizeHigh不为NULL,且结果为&HFFFFFFFF,那么必须
调用
GetLastError,判断是否实际发生了一个错误,因为这是一个有效的结果。 _取文件类型() 在给出文件句柄的前提下,判断文件类型。
返回值
为下述常数之一:FILE_TYPE_UNKNOWN 文件类型未知;FILE_TYPE_DISK 属于磁盘文件;FILE_TYPE_CHAR 文件是一个控制台或打印机;FILE_TYPE_PIPE 文件是个管道 。 _取文件版本信息() 从支持版本标记的一个模块里获取文件版本信息。
返回值
非零表示成功,零表示失败。会设置GetLastError。 _取文件版本信息长度() 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区。
返回值
,容纳文件的版本资源所需的缓冲区长度。如文件不包含版本信息,则返回一个0值。会设置GetLastError。 _取文件全名() 获取指定文件的完整路径名。
返回值
,装载到lpBuffer
中
的字符数量(排除空
中
止字符)。如缓冲区的长度不足以容下完整的路径,则
返回值
就是要求的缓冲区大小。零表示失败。会设置GetLastError。 _取逻辑驱动器() 判断系统
中
存在哪些逻辑驱动器字母。
返回值
的二进制位标志着存在哪些驱动器。其
中
,位0设为1表示驱动器A:存在于系统
中
;位1设为1表示存在B:驱动器;以次类推。 _取逻辑驱动器列表() 获取一个字串,其
中
包含了当前所有逻辑驱动器的根驱动器路径。
返回值
,保存到lpBuffer的字符数量(排除空
中
止字符)。如缓冲区的长度不够,不能容下路径,则
返回值
就变成要求的缓冲区大小。零表示失败。会设置GetLastError。 _取INI整数() 从INI文件
中
指定的条目获取一个整数值。
返回值
,找到的键的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整数,
函数
会返回其
中
合法的一部分。 注解:在Windows NT
中
,有些初始化文件实际是在注册表
中
。可在注册表的下面这个项处找到这些文件的一个列表:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping _取INI小节键值表() 获取指定小节所有项名和值的一个列表。
返回值
,存放到lpReturnedString缓冲区的字符数量。如缓冲区的容量不够大,不能容下所有信息,就返回nSize-2。参考对GetPrivateProfileInt
函数
的注解。 _取INI文本() 从INI文件
中
指定的条目取得字串。
返回值
,复制到lpReturnedString缓冲区的字节数量,其
中
不包括那些NULL
中
止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2)。 注解:如lpKeyName参数为NULL,那么lpReturnedString缓冲区会载入指定小节所有设置项的一个列表。每个项都用一个NULL字符分隔,最后一个项用两个NULL字符
中
止。也请参考GetPrivateProfileInt
函数
的注解。 _取系统INI整数() 取得win.ini初始化文件
中
指定条目的一个整数值。
返回值
,找到条目的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整数,
函数
就会返回其
中
合法的一部分。 _取系统IN表I小节键值() 获取指定小节(在win.ini文件
中
)所有项名和值的一个列表。
返回值
,装载到lpReturnedString缓冲区的字符数量。如缓冲区的长度不足以容下所有信息,则返回nSize-2。参考GetPrivateProfileInt
函数
的注解。 _取系统INI文本() 为win.ini初始化文件
中
指定的条目取得字串。
返回值
,存放到lpReturnedString缓冲区的字节数量,其
中
不包括那些NULL
中
止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpAppName或lpKeyName为NULL,则返回nSize-2)。 _取短文件名() 获取指定文件的短路径名。
返回值
,装载到lpszShortPath缓冲区的字符数量。如lpszShortPath的长度不足,不能容下文件名,就返回需要的缓冲区长度。 _取Windows系统目录() 这个
函数
能取得Windows系统目录(System目录)的完整路径名。在这个目录
中
,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境
中
,往往需要管理员权限才可对这个目录进行写操作。
返回值
Long,存放到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度。 _取临时文件名()
返回值
,最终用于生成文件名的wUnique数字的值。如wUnique参数不为零,这就是参数的值。零表示失败。会设置GetLastError。 _取临时路径() 获取为临时文件指定的路径。
返回值
,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。零表示失败。会设置GetLastError。 注解:临时路径是由TMP环境变量指定的一个路径。如TMP不存在,则是由TEMP环境变量指定的路径。如果这两个环境变量都不存在,就是当前目录。 _取磁盘卷标信息() 获取与一个磁盘卷标有关的信息。
返回值
非零表示成功,零表示失败。会设置GetLastError。 _取Windows目录() 这个
函数
能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件。
返回值
,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度。零表示失败。会设置GetLastError。 _锁定文件() 在windows
中
,文件可用共享模式打开——在这种情况下,多个进程可同时访问该文件。利用这个
函数
,要对文件进行读写的一个应用程序可将文件的某一部分锁定起来,使其不能由其他应用程序访问。这样便避免了同时读写时发生的冲突。
返回值
,非零表示成功,零表示失败。会设置GetLastError。 注解:锁定的区域不能进行重叠操作。由不同的操作系统决定,可能要求先运行share.exe才能保证该
函数
正常工作。 _LZ关闭() 关闭由LZOpenFile 或 LZInit
函数
打开的一个文件。 _LZ复制() 复制一个文件。如源文件已压缩,则会在复制期间解压。文件必须是用微软公司的compress.exe或等效工具压缩的。
返回值
:如执行成功,返回目标文件的大小,以字节为单位。如执行出错,会返回小于零的一个常数,如下表:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上
写入
输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ初始化() 这个
函数
用于初始化内部缓冲区。对一个给出打开文件句柄的一个文件进行解压时,将用到这个缓冲区。注意完成后一定用LZClose关闭这个句柄。最多只能同时打开16个压缩文件句柄 。
返回值
:由lz32.dll库使用的、那个文件的一个特殊句柄。这个文件句柄兼容于LZCopy, CopyLZFiles, LZRead 和 LZSeek
函数
。如果出错,该
函数
会返回下表列出的出错代码之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法 LZERROR_WRITE 在磁盘上
写入
输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ读() 将数据从文件读入内存缓冲区。如hfFile是一个压缩文件的句柄,同时那个压缩文件是由LZOpenFile 或 LZInit
函数
打开的,这个
函数
就会在读入数据的同时对文件进行解压处理。
返回值
,实际读入的字节数。如这个数字小于cbread,表明早已抵达了文件的末尾。如出错,返回下表列出的常数之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上
写入
输出文件时出错,通常是由于磁盘空间不足造成的。 _LZ移位() 设置一个文件
中
进行读写的当前位置。如hfFile是一个压缩文件的句柄,同时那个压缩文件是由LZOpenFile 或 LZInit
函数
打开的,这个
函数
就会根据文件的解压版本进行查找。
返回值
,返回一个新位置,采用从文件起始处计算的字节偏移量。如出错,返回下表列出的常数之一:LZERROR_BADINHANDLE 源文件无效;LZERROR_BADOUTHANDLE 目标文件无效;LZERROR_GLOBALLOC 内部解压缓冲区的内存容量不足;LZERROR_GLOBLOCK 内部解压缓冲区的句柄无效;LZERROR_READ 无效的源文件格式;LZERROR_UNKNOWNALG 解压DLL不能识别源文件采用的压缩算法;LZERROR_WRITE 在磁盘上
写入
输出文件时出错,通常是由于磁盘空间不足造成的。 _文件映射() 将一个文件映射对象映射到当前应用程序的地址空间。MapViewOfFileEx允许我们指定一个基本地址来进行映射。
返回值
,文件映射在内存
中
的起始地址,零表示出错。会设置GetLastError。 注解:dwFileOffsetLow和dwFileOffsetHigh必须反映一个偏移距离,它由系统的内存分配精度决定。例如,假设系统的内存精度是64KB(即最小分配单位是64KB),则这些值必须是64KB的整数倍。大多数应用程序都简单的用零从文件的起始处开始映射。lpBaseAddress也必须是内存分配精度的整数倍。声明
中
的参数类型为Any,而参数表
中
都是Long,我也不明白。但关于这个
函数
的英文资料的确是这样的。 _查询DOS设备() 在Windows NT
中
,DOS设备名会映射成NT系统设备名。该
函数
可判断当前的设备映射情况。
返回值
,零表示出错。如执行成功,返回保存到lpTargetPath的字符数。会设置GetLastError。注解:可用DefineDosDevice
函数
将映射变成DOS设备名。适用平台:Windows NT。 _注册表关闭键() 关闭系统注册表
中
的一个项(或键)。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表远程连接() 访问远程系统的部分注册表。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表创建键() 在指定的项下创建一个新项。如指定的项已经存在,那么
函数
会打开现有的项。
返回值
,,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表删除键() 删除现有项下方一个指定的子项。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表删除值() 删除指定项下方的一个值。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表枚举键() 枚举指定项的子项。在Win32环境
中
应使用RegEnumKeyEx。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。注解:用RegQueryInfoKey判断容纳最长那个项所需的缓冲区长度。 _注册表枚举值() 枚举指定项的值。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表刷新键() 将对项和它的子项作出的改动实际
写入
磁盘。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表载入键() 从以前用RegSaveKey
函数
创建的一个文件里装载注册表信息。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表通知键值改变() 注册表项或它的任何一个子项发生变化时,用这个
函数
提供一种通知机制。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。适用平台:Windows NT。 _注册表打开键() 打开一个现有的注册表项。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。注解:在NT环境下,这个
函数
会使用默认的安全参数。 _注册表打开键增强() 打开一个现有的项。在win32下推荐使用这个
函数
。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。 _注册表查询值() 取得指定项或子项的默认(未命名)值。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。注解:win32应用程序应该使用RegQueryValueEx。lpValue被定义成一个字串,以维持同win16的兼容性(在win16
中
,值全都是字串)。 _注册表查询值增强() 获取一个项的设置值。
返回值
,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码。
VB
程序设计教程:从入门到精通
本课程详细讲授全国计算机等级考试二级
VB
考试的所有重点和考点。并对考试原题
中
的每一个... 课程内容:
VB
可视化编程基础、
VB
语言基础、基本的控制结构、
数组
和自定义类型、
过程
、用户界面设计、数据文件、图形文件。
VB
防破解初探 CRC32 添加校验值到目标程序.rar
VB
CRC32自校验设计实例,
VB
防破解初探 CRC32 添加校验值到目标程序,计算出来的CRC32自校验用的值储存在目标程序末尾8个字节里,你也可以改源代码设定位置,说明: 自校验值跟其他工具计算出来的值不一定相同, 因为我们处理的数据范围不一样,示范代码: 选择一个待添加CRC32值的自校验程序 On Error GoTo Qingjiancha 初始化CRC32值,主要是为了清空上次的状态 CRC32zhi = "" 初始化
写入
成功与否的标志 Zhuangtai = False 检查程序是否包含足够空间和数据,因为储存CRC32需要8个字节的空间,本身计算余量怎么说也要8个字节把?8 8=16。用二进制模式打开目标程序,通过SEEK定位需要添加CRC32数值的位置,请注意:这个位置以后大家可以自己改,通过PUT将我们计算号的CRC32
写入
指定位置,通过CLOSE关闭通道。 就简单的一句话就交代了 ^_^我们已经写好了GetCRC32
函数
和GetZHI
函数
,两个
函数
返回值
为字符串,当然,我们只是做测试,如果真的要,应用到软件
中
去,我推荐还是用浮点计算,制造隐藏剧情,甚至内联汇编处理,根据CRC32值来跳转,让人难以琢磨,使用时,只要使用这两个
函数
就OK了。
最新软件狗时间复制工具
目前市场上的加密锁大致分为两种类型:带CPU加密锁,不带CPU的加密锁。前者拥有计算能力,对加密数据、
过程
数据、通讯接口等可以实施动态密文处理,因此带CPU的加密锁也被演化出了多种多样的加密形式:密文校验、自定义算法、程序移植等等。而不带CPU加密锁相对简单,加密强度较低,成本低廉! 加密锁的克隆 不带CPU加密锁实际上是一个外接的存储单元,用户在使用了正确的方法后可以与内部存储交换数据,以达到加密的目的。这种加密锁,不论其软件加密强度高低,从硬件的角度来说属于低端产品,一般加密公司的低端产品皆属此类。如果破解者找到办法可以把加密锁
中
的数据读出来(前提是这个硬件高手可以找到办法),那么这个加密狗也就被破掉了,制作出一个完全相同的加密锁,这种方法我们熟称为加密锁的“克隆”。加密锁客隆技术的产生使加密锁技术发展进入了一个新的时代,新类型的软件加密锁大多都有密码或硬ID号的保护,只要黑客买不到相同密码的加密锁,也就无法进行加密锁的“克隆”了。 加密锁的仿真、模拟 那么,加密锁的厂家是否可以安枕无忧了呢?不是的,解密者又找到了新的突破口。因为软件要同加密锁进行通讯,必须要通过通讯口来进行,黑客利用这一弱点编制出了加密锁仿真程序,它的工作原理是首先插上保护软件原有的软件锁运行一遍,而后台的程序会记录下所有的
写入
/读出的数据。然后取下加密锁,启动仿真程序,让仿真程序来模拟加密锁提供所有的数据。为此,“蓝芯金盾加密锁”采用了源程序级加密,此方法不是去判断某个值、某个字符串或数据是否正确,而是时时变化输入参数,在任何时刻没有两个相同的数据出现。 自定义算法加密锁 现在市场上还提供一种开发者可自定义算法的加密锁。开发者可以把自己的算法
写入
到加密锁
中
,在软件
中
调用
这些算法来实现特有的计算工作。这种加密锁的实际原理是将一组数据(开发者的算法编译码)下载到加密锁的特定外部存储器,这种方法有它的局限性,因为外部存储器用专门的设备总是可以被读出来的,安全强度的高低仍然依仗在硬件读取方法的寻找上。“蓝芯金盾加密锁”可以为有特殊需要的用户编写专门的加密
函数
,更安全地将用户要求融入加密锁
中
,用户使用加密锁不是去判断加密锁是否正确,而是由加密锁实现用户软件的特定功能。 实际上加密锁的好坏仅仅是一个方面,不论加密锁提供的功能有多丰富,加密性有多好,更主要的是使用者,因为软件毕竟是要被人用的。希望所有的加密锁使用者能够更好的使用他的加密锁来完成对自己软件的保护。 加密技术 → 在很少使用的代码
中
调用
加密锁。那么看似已破译的程序就会经常发生异常现象。 → 根据时间
调用
加密锁。上午
调用
的数据下午(或隔日)使用。破译者为了分析这种数据就要花一天或几天的时间。这就可以拖垮破译者。 → 加密锁校验
函数
不宜定义成一个单独
函数
,而宜定义成若干个小
函数
分散使用。 → 检查程序代码的校验和,以防非法修改。 → 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。 → 可在加密锁里的多个地址预先
写入
不同数据,校验锁时可以随机地对其
中
的某个地址进行校验。(如可随机产生一个数,再根据该数来决定对锁里哪个地址的值进行校验。) → 在程序
中
不同的地方对加密锁进行检测,即多点加密。这个方法可配合方法一使用。 → 在您程序的运行
过程
中
,您可以定时、不定时地对加密锁进行随机检测。 → 您从加密锁取得返回数据后,并不立即判定,而是在后来才去判定是否正确;在判定加密锁错误时,并不立即提示或退出,而是在以后提示或退出或程序照常运行但出现偏差或溢出等等错误。 → 可以将加密锁
返回值
作为
数组
的索引、常量、计算单元和校验码;可以将加密锁
返回值
作为指针来控制程序执行或作为在不同表
中
跳转的索引;也可以使用加密锁
返回值
来加密或解密部分代码或数据。加密锁
返回值
使用后立即删除。 加密方式 内嵌式 这种加密方法要求具有源程序,在被加密程序
中
访问加密锁。加密锁的驱动光盘
中
提供VC\
VB
\VFP\Delph\PB\CB等各种言的编程接口及详细的示例供客户参考。如果您有什么特殊要求可与我们联系。 外壳式 外壳加密是一种直接对可执行文件(.exe\.com\.dll)加密的加密方法。这种方法不需要源程序,加密
过程
简单方便。 文件加密 在加密锁动态连接库
中
提供了文件加密和解密
函数
。
函数
中
隐去了 HASH和RSA密码算法的实现细节,安全性极高且使用方便。用户只需输入文件名和口令即可。 反破译---文件完整性检测 用程序的完整性检测码防止文件被非法篡改 定义1:运行检测码--程序运行时的完整性检测码。 定义2:发行检测码--程序发行时的完整性检测码。 检测原理 根据程序完整性检测程序是否被修改--在程序发行前计算程序的“发行检测码”,在程序发行后运行时自动计算程序的“运行检测码”。 如果 “运行检测码” 等于 “发行检测码” 则程序完整性检测正确,程序没有被修改。 如果 “运行检测码” 不等于“发行检测码” 则程序完整性检测错误,程序被修改。
VB基础类
7,763
社区成员
197,605
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章