Read a string at a given address

发表于:2007-07-01来源:作者:点击数: 标签:
Date: 6/17/2000 Versions: VB 4/32 VB5 VB6 Level: Intermediate Author: Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _ Any, source As Any, ByVal bytes As Long)Private Declare Function lstrlenA Lib "kernel32" (
Date: 6/17/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _ Any, source As Any, ByVal bytes As Long) Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As _ Long Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As _ Long ´ retrieve a string at a given address ´ if LENGTH < 0 the string is considered to be null-terminated ´ and the function determines its length Function StringFromAddr(ByVal address As Long, ByVal length As Long, _ Optional ByVal isUnicode As Boolean) As String ´ determine the length, if necessary If length < 0 Then If isUnicode Then length = lstrlenW(address) Else length = lstrlenA(address) End If End If ´ copy the characters StringFromAddr = Space$(length) If isUnicode Then CopyMemory ByVal StrPtr(StringFromAddr), ByVal address, length * 2 Else CopyMemory ByVal StringFromAddr, ByVal address, length End If End Function

原文转自:http://www.ltesting.net