Alaska Software Inc. - Is there function to replace PEEKSTR() function
Username: Password:
AuthorTopic: Is there function to replace PEEKSTR() function
Normand AubryIs there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 16:56:56 -0500
Is 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 -0600
I am not familiar with PEEKSTR() what is it supposed to do?

- Richard Hankins
Normand AubryRe: Is there function to replace PEEKSTR() function
on Mon, 01 Nov 2004 18:45:44 -0500
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 Mon, 01 Nov 2004 21:48:31 -0500
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
>>
>>
> 
> 
>
Normand AubryRe: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 13:39:56 -0500
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
>>
>>
>
>
>
James Loughner Re: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:49:45 -0500
You 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 BoivinRe: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:13:22 -0500
This 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 BoivinRe: Is there function to replace PEEKSTR() function
on Wed, 03 Nov 2004 15:17:56 -0500
Before spending too much time, take a look at this:
http://www.softwarekey.com/swk_products/plus/versions.asp

We are using the "Entreprise" version.
Anand GuptaRe: Is there function to replace PEEKSTR() function
on Fri, 05 Nov 2004 12:23:27 +0530
Pascal, you wrote your own wrappers for this ?

Anand

"Pascal Boivin" <pboivin@nbautomation.com> wrote in message
news:NBTM061F5295@nbautomation.mailtraq...
> Before spending too much time, take a look at this:
> http://www.softwarekey.com/swk_products/plus/versions.asp
>
> We are using the "Entreprise" version.
>
>
Pascal BoivinRe: 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 MuratovaRe: Is there function to replace PEEKSTR() function
on Thu, 11 Nov 2004 11:37:09 +0700
Hi 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 BoivinRe: 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 MuratovaRe: Is there function to replace PEEKSTR() function
on Fri, 12 Nov 2004 09:28:38 +0700
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"
   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 BoivinRe: 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 MuratovaRe: Is there function to replace PEEKSTR() function
on Sun, 14 Nov 2004 13:42:43 +0700
Hi 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 MuratovaRe: Is there function to replace PEEKSTR() function (YES its here!)
on Thu, 11 Nov 2004 11:34:10 +0700
Hi 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