A SIMPLE WAY TO DETECT GAME WIZARD
------------------------------------------
Hi! there.
First, I must mention it that i'm not good at english.
so, there is very high possibilty of using dull expression.
namely faulty grammer and so on...
please forgive me.
You know game wizard?.
like it's name game wizard is wonderful one.
but, for game producer especially Role style game maker.
game wizard is an ultra-power enemy to defeat. isn't it?
Here is a simple C source code to detect game wizard.
this is for you who make game program.
unsigned get_int_seg(int Intnum)
{
unsigned *IntVec=(unsigned *)0x0;
return(IntVec[Intnum*2+1]);
}
check_wizard()
{
unsigned Intnum70;
Intnum70 = get_int_seg(0x70);
if(intnum70==get_int_seg(0x21))return(1);
if(Intnum70==get_int_seg(0x10))return(1);
if(Intnum70==get_int_seg(0x13))return(1);
if(Intnum70==get_int_seg(0x28))return(1);
return(0);
}
The idea is simple.
when game wizard is installing in memoryal interrupt vector table.
so all we have to is just check special interrupt vector
table's address. especially, interrupt Segment address.
game wizard changes interrupt number 10h,13h,21h,28h,70h and
command line option dependent interrupt numbers.
command line option dependent interrupt numbers are varied by option.
but, interrupt number 10h,13h,21h,28h,70h is always changed.
so if check interrupt number 10h,13h,21h,28h,70h segment address
we can determine whether game wizard is in memory.
notice interrupt number 70h.
intercepting interrupt number 70h is characteristic.
This is simple way to detect game wizard.
Usually this routine works right.
but, After game wizard is excuted and When intercepting interrupt
number 10h,13h,21h,28h program is staying in memory
this routine fails!.
Thanks for read!.
if you have any questions or need more info,
then email me at easthill@nowcom.co.kr
Written by Yonghee Lee ( From Kwangju , Korea ) 1995.