ReadProcessMemory Returning Only 4 Chars?
Apr 12, 2009let me show you my code first and then explain my problem.
[Code]...
let me show you my code first and then explain my problem.
[Code]...
I'm currently developing a little hobby project to display health information in a game on my G15 keyboard through VB.NET. When I use ReadProcessMemory via an API call, it keeps returning zero. The MSDN documentation referred me to use the Marshal.GetLastWin32Error() call to find out what is wrong and it returns 1400: INVALID WINDOW HANDLE.
I am now confused about whether the first argument of the function wants a window handle or a process id. Regardless, I have tried both with FindWindow and hardcoding the process id while the application is running (getting it from task manager). I have tried three different games, Urban Terror, Grand Theft Auto: SA and 3D pinball for windows, getting the memory addresses from an application called Cheat Engine; they all seem to fail. [Code]
In VB.net I've got the following line that removes all non-alphanumeric chars from a string:
return Regex.Replace(build, "[W]", "")
I now need to extend this to remove non-alphanumeric chars that aren't [] or _. I've changed the line to:
return Regex.Replace(build, "[W[]_]", "")
However I'm pretty sure that this says
replace non-word or [ or ] or _
how do I negate the tests for the [] and _ chars so that it says
replace non-word and not [ and not ] and not _
Some examples:
"[Foo Bar_123456]" => "[FooBar_123456]"
"[Foo Bar_123-456*]" => "[FooBar_123456]"
How to convert or make a cast of a List object typized as a container of chars like
Dim mylist As List(Of Char) = New List(Of Char)(New Char() {"1"c, "2"c})
in a simple array of chars as
Dim mychars() As Char
without make a loop for...
This time i have to read a string from a textbox on an other window (not one form in my project).I've got the correct address to that string memory, i can always get the correct
handle and process of the window, but i don't know how to use themwith ReadProcessMemory
I've been banging my head at a wall for like 4 hours now, googling and searching forums but I haven't found a solution yet. This is (a part) of the code: Public Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle as Integer, ByVal dwProcId As Integer) As Integer
Public Declare Function ReadProcessMemory Lib "Kernel32.dll" (ByVal hProcess as IntPtr, ByVal lpBaseAddress As Integer, ByVal lpBuffer() As Byte, ByVal Size As Integer, ByRef BytesWritten As Integer) As String
[code].....
i wrote a programm that reads the memory of a program.it worked at xp and vista but not at windows 7 i builded it with microsoft visual basic 2008 express edition.the code looks like this:
Public Declare Function GetWindowThreadProcessId Lib "User32" (ByVal hwnd As Integer, ByRef lpdwProcessId As Integer) As Integer Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
[Code]...
I would like to know how you can get into a game using the ReadProcessMemory technique. Could someone help me by telling me what information I need to get into the game and the code required.
View 5 RepliesThis is again something work in VBA while VB2008 not working..I was about to use them to read lines from a listview of an external application...I define them as:
Private Declare Function WriteProcessMemory Lib "kernel32 " (ByVal hProcess As Int32, ByVal lpBaseAddress As Int32, ByRef lpBuffer As IntPtr, ByVal nSize As Int32, ByVal lpNumberOfBytesWritten As Int32) As Int32
Private Declare Function ReadProcessMemory Lib "kernel32 " (ByVal hProcess As Int32, ByVal lpBaseAddress As Int32, ByRef lpBuffer As IntPtr, ByVal nSize As Int32, ByVal lpNumberOfBytesWritten As Int32) As Int32
Originally, lpBuffer was defined as Any, while VB2008 not supporting it, so I make them IntPtr, then I got trouble when I use them..I declare a structure LV_ITEMA then dim myItem as new LV_ITEMA, so when I write:
WriteProcessMemory(pHandle, pMyItemMemory, myItem, Len(myItem), 0)
The program will give an error saying .. Error 1 Value of type 'WindowsApplication1.Module1.LV_ITEMA' cannot be converted to 'System.IntPtr'.
I've been using the readprocessmemory function to read some values from another program and it works just fine for small values. However when I'm trying to read something like 5000.123456789 or whatever it doesn't even display the 5000, it just displays something that seems kinda random. Now, I've had this problem before and it helped to just increase the iSize from 1 to 10, but now I can't increase it anymore for some reason. I tried to increase it to 100 but then I got a fatal error. Is there some way to get around this? I guess it could also be because I'm not trying to read an integer but a float, but there is no float in VB, so i tried double, but no go.
[Code]...
I'm trying to get the Score of Pinball:
<DllImport("kernel32.dll", SetLastError:=True)> _
Public Function ReadProcessMemory( _
ByVal hProcess As IntPtr, _
ByVal lpBaseAddress As IntPtr, _
<Out()> ByVal lpBuffer() As Byte, _
ByVal dwSize As Integer, _
[Code]...
I have an ASP.NET web application (VB.NET) using an Oracle database. On an insert, I need to get the identity of the inserted row back. I am trying to use RETURNING, but I keep getting a value of 1 returned.
Dim strInsert As String = "INSERT INTO L.TRANSACTIONS (LOCATION_KEY, TRANS_CREATOR, TRANS_EMAIL, TRANS_PHONE) VALUES (:location_key, :trans_creator, :trans_email, :trans_phone) RETURNING TRANS_ID INTO :ukey"
[Code].....
I'm having some problems implementing an algorithm to read a foreign process' memory. Here is the main code:
[Code]...
Although generally it seems to work correctly, the problem is that for some memory values ReadProcessMemory is returning false, and GetLastError is returning 299. From what I've googled, it seems to happen on vista because some params of OpenProcess were updated. Anyone knows what this is about? And what values should I try? Notice that as they changed, I wouldn't want to know if it's VM_READ or so, I want to know exactly what the values are.
[Code]...
My brain may just be fried since it's the end of the semester, but my teacher kicked this back to fix and resubmit...she said that I am "returning the name of your function rather than your variable name".
Here is my code for all 3 forms.
code:
These are forms to calculate the cost of getting a cell phone package.
I have searched google with this error in relation to Process.MainModule.FileName however none link with the error message, "Only part of a ReadProcessMemory or WriteProcessMemory request was completed".There however was one thread on these forums suggest a 64 bit issue however that was soon excluded as it was reported also in a 32 bit enviroment. The marked answer to that thread suggested it is a security problem however I don't think anything has been changed in relation to that comapred to a 'clean' project.
"If it is a security problem, you may try to run your application under the debugger" Process.MainModule failure I am in-fact debugging this application through Visual Studio so I am not quite sure what to do next in the process of diagnosing this problem. I am debugging using 32 bit in a 64 bit enviroment because of DirectX compatability issues?
I tried below code:
Private Sub txtName_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtName.KeyPress
' allow upper and lower case A-Z, and backspace
[Code]....
But it gives:
'KeyAscii' is not declared. It may be inaccessible due to its protection level.
how to allow alphabet only ?
I am making an antivirus program and i am having a problem with my database. how can i only get the hash in this string:
693248:ff807bd383d377f7f8f91ed4aa7677ae:Trojan.Agent-178374
i only want between the two ":"s in this string. how is this possible? and also how do i get the last part on the right of the last ":"?
ok here is the situation. i have a form that is hidden. the form needs to wait until somone hits the F2 button.
View 1 Repliesi have a csv file that needs to be imported to sql server the file includes Unicode characters, so i saved it in notepad as Unicode now when i run this in sql it works excellent BULK INSERT personimps FROM 'C:MyImp.csv' WITH (FIELDTERMINATOR = ',',datafiletype='widechar')but when using the following in my code-behind in asp.net, i get gibberish where the Unicode chars should be. [code] it seems like the oledbconnection is ignoring the extended properties, or maybe i didn't set up the connection-string correctly? the ASCII chars come out OK, the Unicode fields are just gibberish.
View 1 RepliesTHis is a line of code i have, it's a code to go at the bottom of a document and the title of the question is the error it has, how do i change the 'Chars' to not be read only? I can only guess 'Chars' is a character.
pagecode(1) ="01274-6759q-DDD"
If you're not living on the edge, you're taking up too much room
I'm data binding to a label in a grid and need to knock off the last two chars, not so easy as I thought.I know this is wrong it just shows how I'm coding:
Code:Private Sub TemplateControl_DataBinding_Label(ByVal sender As Object, ByVal e As System.EventArgs)
[code].....
How can i replace the enter key with an other set of chars
example - text.replace(" ", "this is a space")
that previous statement will replace all spaces with the string "this is a space"
how do i do this for an enter?
Well I made another thread but I know how to make textbox allowed chars but is possible with web browsers? Like if f1 - f12 is pressed then nothing happen like nothing have been touch.
View 1 RepliesWell my question is simple and straightforward. Is there any way we can use hex values like in c++?
I am going to write binary files, but for that i will have to define certain characters like this for example.
x00x00x11x22x33x00x00. I would first need to convert stuff like this to a byte array, and then write it to a binary text file.
I was wondering if it was possible, in a console application, to write characters like "℃" using .NET? When I try to write this character, the console outputs a question mark.
View 2 RepliesIs there a way to let only certain chars be added to a datagridview cell? like '1234567890'?
View 1 RepliesI have a 2d array of chars and i need to start at (0,0) and creat a string and check it against some value then still then add another char to the first one and check it. I need to do that in every direction.[code]say im at the H their are like 8 way i need to check..
View 1 RepliesIt seems like I'm only able to enter a certain number of chars into a textbox.Like if I have a list from 1 to 10000.When I paste it in a textbox it ends like this:
5639
5640
5641
[code]....
Why cant I add everything to the textbox?
I get the Error Property 'Chars' is 'ReadOnly'
View 3 Repliesif the last 4 chars in my string(result) are " AND" or the last three chars are " OR" I would like to remove these from the string. So far I have am trying result.trimend and a few other methods but am unsure how to get it working.
View 3 Replies