|
Hi,
I've put a slider control into my window and set a range (min/max). I've also set a TickFreq.
The Ticks are also correctly displayed, but it is still possible to drag the thumb to any position on the slider, not only where the ticks are (btw: auto ticks is on).
I've found not method to force the slider use only the positions where the ticks are. Is there any? Or do I have to code that stuff for myself.. ( I cannot believe that ).
Thx, Shi
|
|
|
|
|
If you had a slider from 0 to 100, and ticks every 10, then the slider will give the user 100 positions it can be.
Or, set a slider from 0 to 10, tick at intervals of 1, then just multiply the position by 1 internally.
Tada!
Iain.
|
|
|
|
|
|
Hopefully somebody might be able to help me with this before the weekend sets in.
I'm trying to manipulate the memory of another process. So far I can change the protection, read and write data. But two of the APIs VirtualAllocEx() and VirtualFreeEx() fail nomatter what I try to do.
I am doing nothing out of the ordinary, I simply create a process in suspended state, get the base address of it's memory and manipulate it; similar to most code injection articles.
Is there anything special I should be doing before I use these?
|
|
|
|
|
WalderMort wrote: I'm trying to manipulate the memory of another process.
Training for the black-hat-olympics?
Whatever you do, it *should* not work. If it does, it is a temporary faiure in Windows security.
Though I speak with the tongues of men and of angels, and have not money, I am become as a sounding brass, or a tinkling cymbal. George Orwell, "Keep the Aspidistra Flying", Opening words
|
|
|
|
|
You may need to enable debug privledges.
Something like this:
LUID luid;
HANDLE hToken;
TOKEN_PRIVILEGES tp, otp;
DWORD dwSize = sizeof(TOKEN_PRIVILEGES);
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
{
if(LookupPrivilegeValue(NULL,SE_SYSTEMTIME_NAME,&luid))
{
SecureZeroMemory(&tp,sizeof(tp));
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),&otp, &dwSize))
{
}
}
CloseHandle(hToken);
}
Best regards,
-David Delaune
|
|
|
|
|
Sorry, I forgot to mention I had already done that.
Through trial and error, I have found that I must let the system decide where to allocate the memory. Though calls to VirtualAllocEx() with MEM_DECOMMIT still fail, as does VirtualFreeEx(). I'm guessing this must be some type of security feature and only the caller to VirtualAlloc may de-commit or free.
|
|
|
|
|
has any body worked on retrieving the unique ID of a computer. other than LAN card ID.
please suggest.
|
|
|
|
|
You can use hard disk drive volume number.
- NS -
|
|
|
|
|
thank you
how to retrieve it.
|
|
|
|
|
See GetVolumeInformation
- NS -
|
|
|
|
|
It isn't 'Unique' ... it can be changed formatting the HDD, or programmatically
Russell
|
|
|
|
|
That's true. But it can be considered as unique, for creating software licenses.
- NS -
|
|
|
|
|
This is unwise as any change to that volume would render the app un-runnable. There are any number of ways in which this ID could be changed. If you intend to use any ID from a PC, always take it from a physical item.
|
|
|
|
|
HDD ID was used for this purpose when I was coding for DOS applications (many years before). May be due to that my first choice is HDD.
I have no idea whether the mother board ID, etc is available at that time. Do you have any knowledge regarding this?
- NS -
|
|
|
|
|
Of course you can,
but we not need to be an expert haeker to crack your license: buy one licence and run the software on other PCs simply using this[^]
Russell
|
|
|
|
|
Yes...
So you say, we should not use it?
- NS -
|
|
|
|
|
You can use it...but don't tell you are doing that.
The best is to mix that ID with other information like CPU ID, motherboard, ...
But comes other problems: not every CPU has got the ID
At the end I think that I sure way is doesn't exist
Russell
|
|
|
|
|
_Russell_ wrote: But comes other problems: not every CPU has got the ID
HDD is anyway, reliable...
For complication, I used to use HDD ID combined with user name, etc.
- NS -
|
|
|
|
|
NS17 wrote: HDD is anyway, reliable...
There are exceptions also there
we can ask suggestions on the "lounge" ... but I think that it will not be the first time...and I dubt that it is possible to have a solution.
We use USB Dongles ... they are unique, ... but I prefere software ways
Russell
|
|
|
|
|
_Russell_ wrote: I prefere software
I like cracking... but dont tell anyone...
- NS -
|
|
|
|
|
|
Ooops
- NS -
|
|
|
|
|
There is no unique ID for a computer. The closest you will get is by getting the ID's for things like HD, CPU, BIOS... and combining them in some way. Even then, it will not be unique and you will have problems when a user decides to upgrade one of those components.
BTW. This is similar to how windows verification works.
[ Appended ]
As an afterthought, you could possibly create a GUID and combine it with one/all of the above items.
|
|
|
|
|
But for protecting a software from piracy, these are very helpful. Am I right?
- NS -
|
|
|
|