|
5精币
- <P>void WriteMemory(int InAddress, char *str)
- {
- char data[1024];
- char tmp[3];
- int len = strlen(str);
- for(int i=0;i<len;++i)
- {
- tmp[0]=*(str+i*2);
- tmp[1]=*(str+i*2+1);
- tmp[2]=0;
- data[i] = (char)strtol(tmp,NULL,16);
- }
- memcpy( (void *)InAddress, data, strlen(str)/2);
- }</P>
- <P> </P>
- <P>WriteMemory(0x004415CF, "90909090909090909090909090");</P>
- <P> </P>
- <P>
- void WriteMemoryFuction(int InAddress, int fuction)
- {
- char data[5] = {0xE8, 0x00, 0x00, 0x00, 0x00};
- *(int *)&data[1] = fuction - InAddress - 5;
- memcpy( (void *)InAddress, data, sizeof(data));
- }</P>
- <P> </P>
- <P>int fixmetamo( int id )
- {
- volatile SPRITEDATA *spritedata = (volatile SPRITEDATA *)0x03914C30;
- if(spritedata[id - 100000].animSize == 0){</P>
- <P> return 100000;
- }else{
- return id;
- }
- }</P>
- <P> </P>
- <P>WriteMemoryFuction(0x00479BAF, (int)fixmetamo);</P>
- <P> </P>
- <P>void WriteMemoryJmp(int InAddress, int OutAddress)
- {
- char data[5] = {0xE9, 0x0, 0x0, 0x0, 0x0};
- *(int *)&data[1] = (int)OutAddress - 1 - InAddress;
- memcpy( (void *)InAddress, data, sizeof(data));
- }</P>
- <P> </P>
- <P>volatile int *dword_45FF110 = (volatile int *)0x045FF110;
- void jmp_Meun()
- {</P>
- <P> int jmp44DF67 = 0x0044DF67;
- __asm{
- jmp jmp44DF67
- }
- }
- </P>
- <P>WriteMemoryJmp(0x0044DF5F, (int)&jmp_Meun);</P>
复制代码
|
|