| Author | Topic: Is there function to replace PEEKSTR() function |
---|
| Normand Aubry | Is there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 16:56:56 -0500Is there function to replace PEEKSTR() function ? |
| Richard L. Hankins Jr. | Re: Is there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 16:16:53 -0600I am not familiar with PEEKSTR() what is it supposed to do?
- Richard Hankins |
| Normand Aubry | Re: Is there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 18:45:44 -0500Reads a byte sequence from memory
I use it as a safe guard that prevent the compile software program from
being run on any computer without autorization
"Richard L. Hankins Jr." <rhankins@contactasi.com> a crit dans le message
de news:dq8DFCGwEHA.7176@S15147418...
> I am not familiar with PEEKSTR() what is it supposed to do?
>
> - Richard Hankins
>
> |
| James Loughner | Re: Is there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 21:48:31 -0500This sounds like a Basic function. There is no direct replacement in
either Clipper or Xbase++. What values are you looking at? There may be
a Windows API function to return it.
Jim
Normand Aubry wrote:
> Reads a byte sequence from memory
> I use it as a safe guard that prevent the compile software program from
> being run on any computer without autorization
>
>
> "Richard L. Hankins Jr." <rhankins@contactasi.com> a écrit dans le message
> de news:dq8DFCGwEHA.7176@S15147418...
>
>>I am not familiar with PEEKSTR() what is it supposed to do?
>>
>>- Richard Hankins
>>
>>
>
>
> |
| Normand Aubry | Re: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 13:39:56 -0500I am not familiar with window API function
Do you have sample of those function and where I can get more information
about those.
________________________________________________________
Visitez le site du magazine Aubry et Cie www.norja.net
"James Loughner" <jwrl@charter.net> a crit dans le message de
news:Aip1AaIwEHA.5064@S15147418...
This sounds like a Basic function. There is no direct replacement in
either Clipper or Xbase++. What values are you looking at? There may be
a Windows API function to return it.
Jim
Normand Aubry wrote:
> Reads a byte sequence from memory
> I use it as a safe guard that prevent the compile software program from
> being run on any computer without autorization
>
>
> "Richard L. Hankins Jr." <rhankins@contactasi.com> a crit dans le message
> de news:dq8DFCGwEHA.7176@S15147418...
>
>>I am not familiar with PEEKSTR() what is it supposed to do?
>>
>>- Richard Hankins
>>
>>
>
>
> |
| James Loughner | Re: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:49:45 -0500You can lookup API calls on the Microsoft web site. But there are
thousands of them. It would be easiest to simply tell use what value
your looking for ie BIOS or HardDisk serial number? Something else??
Jim
Normand Aubry wrote:
> I am not familiar with window API function
> Do you have sample of those function and where I can get more information
> about those.
> ________________________________________________________
> Visitez le site du magazine Aubry et Cie www.norja.net
>
>
> "James Loughner" <jwrl@charter.net> a écrit dans le message de
> news:Aip1AaIwEHA.5064@S15147418...
> This sounds like a Basic function. There is no direct replacement in
> either Clipper or Xbase++. What values are you looking at? There may be
> a Windows API function to return it.
>
> Jim
>
> Normand Aubry wrote:
>
>
>>Reads a byte sequence from memory
>>I use it as a safe guard that prevent the compile software program from
>>being run on any computer without autorization
>>
>>
>>"Richard L. Hankins Jr." <rhankins@contactasi.com> a écrit dans le message
>>de news:dq8DFCGwEHA.7176@S15147418...
>>
>>
>>>I am not familiar with PEEKSTR() what is it supposed to do?
>>>
>>>- Richard Hankins
>>>
>>>
>>
>>
>>
>
> |
| Pascal Boivin | Re: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:13:22 -0500This function is available only in 16 bits language. Windows run in 32 or 64
bits mode (protected mode), this mode hide the physical memory layout (640Kb
+ External memory like video cards and BIOS + Extended memory). It can be
done in assembly language but Windows XP SP2 would detect a "Buffer Overrun"
and crash your application.
What is the value you want? There is some API function to get hard disk
and BIOS serial number. |
| Pascal Boivin | Re: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:17:56 -0500 |
| Anand Gupta | Re: Is there function to replace PEEKSTR() function
on Fri, 05 Nov 2004 12:23:27 +0530 |
| Pascal Boivin | Re: Is there function to replace PEEKSTR() function
on Fri, 05 Nov 2004 08:36:51 -0500"Anand Gupta" <agREMOVE_at_coralindiaREMOVE_dot_com> a crit dans le message
de news: OIkgXQwwEHA.6512@S15147418...
> Pascal, you wrote your own wrappers for this ?
I have done a "Security.dll" in C++ and assembly a few years ago. It use
PPP to get serial numbers and get/set security settings. It send an custom
event to the main application (XBase or whatever) when the security is ok,
and the event WM_CLOSE when it is not.
This DLL is not for sales, but I can help you to build your own. |
| Eka Muratova | Re: Is there function to replace PEEKSTR() function
on Thu, 11 Nov 2004 11:37:09 +0700Hi Pascal
> It can be
> done in assembly language but Windows XP SP2 would detect a "Buffer
Overrun"
> and crash your application.
Try to crash your app with our version of Peek/PokeStr() ))
--
Eka Muratova
www.eleussoft.narod.ru |
| Pascal Boivin | Re: Is there function to replace PEEKSTR() function
on Thu, 11 Nov 2004 13:15:40 -0500"Eka Muratova" <eleussoft@narod.ru> a crit dans le message de news:
8VqD3f6xEHA.6380@S15147418...
> Hi Pascal
>
>> It can be
>> done in assembly language but Windows XP SP2 would detect a "Buffer
> Overrun"
The tricks I was using in assembly was this:
Start a "Windows Critical Section" to prevent task switching (Windows API)
Save the current memory descriptor from ES
Create a memory descriptor, Physical Adress: 0 Length: 1 meg
Load the memory descriptor into ES
Copy the byte(s) needed from ES to your data segment (DS)
Restore ES
Stop "Windows Critical Section"
The application crash as soon as I load the new memory descriptor when using
XP SP2.
> Try to crash your app with our version of Peek/PokeStr() ))
What is the process number you use from ReadMemoryFromProcess? |
| Eka Muratova | Re: Is there function to replace PEEKSTR() function
on Fri, 12 Nov 2004 09:28:38 +0700Hi Pascal!
> >> It can be
> >> done in assembly language but Windows XP SP2 would detect a "Buffer
> > Overrun"
> The tricks I was using in assembly was this:
> Start a "Windows Critical Section" to prevent task switching (Windows API)
> Save the current memory descriptor from ES
> Create a memory descriptor, Physical Adress: 0 Length: 1 meg
> Load the memory descriptor into ES
> Copy the byte(s) needed from ES to your data segment (DS)
> Restore ES
> Stop "Windows Critical Section"
Why you are using assembly lang? Why don't use plain C/C++ pointers?
(Note: in your description you operate 16bit register names but in win32
they are 32bit)
Also note, critical sections (CS) is designed for
interprocess/multithread access to same data, not to prevent task switching.
> The application crash as soon as I load the new memory descriptor when
using
> XP SP2.
>
> > Try to crash your app with our version of Peek/PokeStr() ))
>
> What is the process number you use from ReadMemoryFromProcess?
Any. If Read/WriteProcessMemory() memory pointer do not accessible for
read/write for any reason, this function(s) just fail (not crash!). Look
into MSDN for more details.
--
Eka Muratova
www.eleussoft.narod.ru |
| Pascal Boivin | Re: Is there function to replace PEEKSTR() function
on Fri, 12 Nov 2004 09:23:35 -0500> Why you are using assembly lang? Why don't use plain C/C++ pointers?
> (Note: in your description you operate 16bit register names but in win32
> they are 32bit)
I'm not sure what you are talking about.
DS and ES are 16 bits segment register, they contains the identifer of the
memory descriptor (48 bits) in the local/global descriptor table (LDT or
GDT). C/C++ can not change or add a memory descriptor. In the official
Intel book, what I call a memory descriptor is called a "Segment
Descriptor".
> Also note, critical sections (CS) is designed for
> interprocess/multithread access to same data, not to prevent task
> switching.
This is what is written. With only one processor without hyperthread, CS
actually prevent task switching. I don't know why, but this is the case.
Task switching destroy "Home made" memory descriptor. I've use this as a
workaround, I know this will not always be ok!
Let's come back to this thread: Normand want to read a value from memory.
A serial number or something from the BIOS, like C000:1E -> "IBM
COMPATIBLE10/11/2002-09:01:43". PS: C000:1E is the 16 bits adress where
C000 is the BIOS of my video card.
How do you get this value using __PeekStr? |
| Eka Muratova | Re: Is there function to replace PEEKSTR() function
on Sun, 14 Nov 2004 13:42:43 +0700Hi Pascal!
[..]
>
> Let's come back to this thread: Normand want to read a value from memory.
> A serial number or something from the BIOS, like C000:1E -> "IBM
> COMPATIBLE10/11/2002-09:01:43". PS: C000:1E is the 16 bits adress where
> C000 is the BIOS of my video card.
>
> How do you get this value using __PeekStr?
It can be done in win9x but there is no way under NT/2000/XP.
--
Eka Muratova
www.eleussoft.narod.ru |
| Eka Muratova | Re: Is there function to replace PEEKSTR() function (YES its here!)
on Thu, 11 Nov 2004 11:34:10 +0700Hi Normand!
> Is there function to replace PEEKSTR() function ?
Try to use attached files. There are some different methods to implement
this funcs (our very first versions use just _retclen()) but current version
use standart win32 Read/WriteProcessMemory() to avoid any possible crash.
--
Eka Muratova
www.eleussoft.narod.ru
PEEKPOKE.ZIP |