首页 > 其他 > 详细

game-hacking

时间:2019-10-10 09:02:02      阅读:162      评论:0      收藏:0      [点我收藏+]

https://github.com/dsasmblr/game-hacking

Cheat Engine

Hacking memory

Cheat engine have a feature called Dissect mono that can help hacking game‘s memory. This video series about using cheat engine is really useful.

 

https://wiki.cheatengine.org/index.php?title=Mono

 https://github.com/cheat-engine/cheat-engine

[Open Source] A powerful, all-in-one game hacking tool with an extensive feature set. Varying versions for Mac, Linux, and Android can be found here. CE video tutorials here.

 

CrySearch Memory Scanner

https://www.crysearch.nl/

[Open Source] A memory scanner akin to Cheat Engine, but with different features and a cleaner UI.

技术分享图片

 

可以找到mono.dll的起始地址,size是39700

技术分享图片

 

搜字符串

技术分享图片

 搜索IsValidForCurrentMode

技术分享图片

 

this.externalProcessMemory_0.ReadStringA(address) "IsValidForCurrentMode" string
+ address 0x0C1CDFDB System.IntPtr    现在是0x1254E325

this.externalProcessMemory_0.ReadStringA(address) "CanClickToConvertToStandard" string
+ address 0x0C1CDFF1 System.IntPtr     现在是0x1254E33B

0x3B-0x25=0x16  

0xF1-0xDB=0x16

 

this.externalProcessMemory_0.ReadStringA(address) "get_SCALED_UP_LOCAL_SCALE" string
+ address 0x0C1CDE38 System.IntPtr   现在是 0x1254E182   相差0x0638 034A?

this.externalProcessMemory_0.ReadStringA(address) "set_SCALED_UP_LOCAL_SCALE" string
+ address 0x0C1CDE52 System.IntPtr    现在是0x1254E19C  也是相差638 034A?

0x9c-0x82=0x1A

 

public bool IsValidForCurrentMode()
        {
            return base.method_11<bool>("IsValidForCurrentMode", Array.Empty<object>());
        }

internal T method_11<T>(string string_4, params object[] object_0) where T : struct
        {
            return this.method_10<T>(string_4, null, object_0);
        }

internal T method_10<T>(string string_4, Class276.Enum20[] enum20_0, params object[] object_0) where T : struct
        {
            IntPtr intPtr = this.method_7(string_4, enum20_0, object_0);
            if (intPtr == IntPtr.Zero)
            {
                return default(T);
            }
            if (typeof(T) == typeof(bool))
            {
                IntPtr addr = MonoClass.Class276_0.method_26(intPtr);
                return (T)((object)(MonoClass.ExternalProcessMemory_0.Read<byte>(addr) > 0));
            }
            return MonoClass.ExternalProcessMemory_0.Read<T>(MonoClass.Class276_0.method_26(intPtr));
        }

 

internal IntPtr method_33(IntPtr intptr_37, string string_0, params Class276.Enum20[] enum20_0)
        {
            while (intptr_37 != IntPtr.Zero)
            {
                using (AllocatedMemory allocatedMemory = this.externalProcessMemory_0.CreateAllocatedMemory(256))
                {
                    allocatedMemory.AllocateOfChunk<IntPtr>("Itr");
                    IntPtr intPtr;
                    while ((intPtr = this.method_35(intptr_37, allocatedMemory["Itr"])) != IntPtr.Zero)
                    {
                        IntPtr address = this.method_37(intPtr);
                        if (this.externalProcessMemory_0.ReadStringA(address) == string_0)
                        {
                            if (enum20_0 != null)
                            {
                                Class276.Enum20[] array = this.method_31(intPtr);
                                if (array.Length != enum20_0.Length || !array.SequenceEqual(enum20_0))
                                {
                                    continue;
                                }
                            }
                            return intPtr;
                        }
                    }
                    intptr_37 = this.method_25(intptr_37);
                }
            }
            return IntPtr.Zero;
        }

 

game-hacking

原文:https://www.cnblogs.com/chucklu/p/11645277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!