-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Only part of a ReadProcessMemory or WriteProcessMemory request was completed #45
Comments
// Triton.Game.Mapping.QuestLog
// Token: 0x17002BD0 RID: 11216
// (get) Token: 0x0600793A RID: 31034 RVA: 0x000E8EA8 File Offset: 0x000E70A8
public List<QuestTile> m_currentQuests
{
get
{
Class271<QuestTile> @class = base.method_3<Class271<QuestTile>>("m_currentQuests");
if (@class != null)
{
return @class.method_25();
}
return null;
}
} |
// ns26.Class271<T>
// Token: 0x06001AF2 RID: 6898 RVA: 0x000DEAE0 File Offset: 0x000DCCE0
public List<T> method_25()
{
List<T> list = new List<T>();
int int32_ = this.Int32_0;
for (int i = 0; i < int32_; i++)
{
list.Add(this.method_24(i));
}
return list;
}
// ns26.Class271<T>
// Token: 0x06001AF1 RID: 6897 RVA: 0x00013280 File Offset: 0x00011480
public T method_24(int int_1)
{
return base.method_15<T>("get_Item", new Class276.Enum20[]
{
Class276.Enum20.I4
}, new object[]
{
int_1
});
} |
// Triton.Game.Mono.MonoClass
// Token: 0x060019F8 RID: 6648 RVA: 0x000DCB0C File Offset: 0x000DAD0C
internal T method_15<T>(string string_4, Class276.Enum20[] enum20_0, params object[] object_0) where T : class
{
if (!typeof(T).IsClass)
{
throw new InvalidOperationException(string.Concat(new object[]
{
typeof(T),
" is not a class type. Please fix the method invocation for ",
this.ClassName,
".",
string_4,
" to use Get<T> or GetString instead."
}));
}
IntPtr intPtr = this.method_7(string_4, enum20_0, object_0);
if (intPtr == IntPtr.Zero)
{
return default(T);
}
return FastObjectFactory.CreateObjectInstance<T>(intPtr);
}
// Triton.Game.Mono.MonoClass
// Token: 0x060019F0 RID: 6640 RVA: 0x000DC9F8 File Offset: 0x000DABF8
internal IntPtr method_7(string string_4, Class276.Enum20[] enum20_0, params object[] object_0)
{
IntPtr classInstance = this.GetClassInstance();
if (classInstance == IntPtr.Zero)
{
throw new Exception("Cannot call a method on an object instance that has no address!");
}
IntPtr intPtr = this.method_0(string_4, enum20_0);
if (intPtr == IntPtr.Zero)
{
throw new MissingMethodException(this.ClassName, string_4);
}
return MonoClass.Class276_0.method_43(intPtr, classInstance, object_0);
}
// Triton.Game.Mono.MonoClass
// Token: 0x060019D9 RID: 6617 RVA: 0x00012694 File Offset: 0x00010894
internal IntPtr method_0(string string_4, Class276.Enum20[] enum20_0)
{
if (this.IntPtr_0 == IntPtr.Zero)
{
throw new InvalidOperationException("Cannot get a method pointer on an object that has no MonoClass pointer.");
}
return MonoClass.smethod_4(this.IntPtr_0, string_4, enum20_0);
}
// Triton.Game.Mono.MonoClass
// Token: 0x060019DA RID: 6618 RVA: 0x000DC4A8 File Offset: 0x000DA6A8
private static IntPtr smethod_4(IntPtr intptr_1, string string_4, Class276.Enum20[] enum20_0)
{
MonoClass.Class274 @class = new MonoClass.Class274();
@class.string_0 = string_4;
@class.enum20_0 = enum20_0;
Dictionary<string, List<MonoClass.Class273>> dictionary;
if (!MonoClass.dictionary_3.TryGetValue(intptr_1, out dictionary))
{
MonoClass.dictionary_3.Add(intptr_1, new Dictionary<string, List<MonoClass.Class273>>());
dictionary = MonoClass.dictionary_3[intptr_1];
}
List<MonoClass.Class273> list;
if (!dictionary.TryGetValue(@class.string_0, out list))
{
dictionary.Add(@class.string_0, new List<MonoClass.Class273>());
list = dictionary[@class.string_0];
}
MonoClass.Class273 class2 = list.FirstOrDefault(new Func<MonoClass.Class273, bool>(@class.method_0));
if (class2 == null)
{
IntPtr intPtr = MonoClass.Class276_0.method_33(intptr_1, @class.string_0, @class.enum20_0);
if (intPtr != IntPtr.Zero)
{
class2 = new MonoClass.Class273(@class.string_0, intPtr, @class.enum20_0);
list.Add(class2);
}
}
if (class2 == null)
{
return IntPtr.Zero;
}
return class2.IntPtr_0;
} |
// ns27.Class276
// Token: 0x06001A90 RID: 6800 RVA: 0x000DE024 File Offset: 0x000DC224
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;
}
// ns27.Class276
// Token: 0x06001A8E RID: 6798 RVA: 0x000DDDE4 File Offset: 0x000DBFE4
internal Class276.Enum20[] method_31(IntPtr intptr_37)
{
List<Class276.Enum20> list = new List<Class276.Enum20>();
IntPtr intPtr = this.method_13(intptr_37);
Class276.Struct109 @struct = this.externalProcessMemory_0.Read<Class276.Struct109>(intPtr);
IntPtr pointer = intPtr + 12;
for (int i = 1; i < (int)(@struct.ushort_0 + 1); i++)
{
IntPtr addr = this.externalProcessMemory_0.Read<IntPtr>(pointer + i * 4);
Class276.Enum20 uint32_ = (Class276.Enum20)this.externalProcessMemory_0.Read<Class276.Struct110>(addr).UInt32_1;
list.Add(uint32_);
}
return list.ToArray();
} |
might need to check Class276.Struct110 and its property UInt32_1 // ns27.Class276.Struct110
// Token: 0x17000509 RID: 1289
// (get) Token: 0x06001ABF RID: 6847 RVA: 0x00012FC2 File Offset: 0x000111C2
internal uint UInt32_1
{
get
{
return (this.uint_0 & 16711680U) / 65536U;
}
} |
check the HearthMirror project of HearthSim |
new
old
Any Ideas? |
这个问题我也搞不懂,有没有能人异士透露个思路 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
2020-05-13 21:17:34.538+08:00 [15] ERROR Triton.Common.LogUtilities.Logger - [Tick] Exception during execution:
Buddy.Coroutines.CoroutineUnhandledException: Exception was thrown by coroutine ---> System.Exception: Only part of a ReadProcessMemory or WriteProcessMemory request was completed, at addr: F37438A4, Size: 12
at GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
at GreyMagic.MemoryBase.Read[T](IntPtr addr)
at ns27.Class276.method_31(IntPtr intptr_37)
at ns27.Class276.method_33(IntPtr intptr_37, String string_0, Enum20[] enum20_0)
at Triton.Game.Mono.MonoClass.smethod_4(IntPtr intptr_1, String string_4, Enum20[] enum20_0)
at Triton.Game.Mono.MonoClass.method_0(String string_4, Enum20[] enum20_0)
at Triton.Game.Mono.MonoClass.method_7(String string_4, Enum20[] enum20_0, Object[] object_0)
at Triton.Game.Mono.MonoClass.method_15[T](String string_4, Enum20[] enum20_0, Object[] object_0)
at ns26.Class271`1.method_24(Int32 int_1)
at ns26.Class271`1.method_25()
at Triton.Game.Mapping.QuestLog.get_m_currentQuests()
at Triton.Bot.Logic.Bots.DefaultBot.DefaultBot.Struct84.MoveNext()
// End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Triton.Bot.Logic.Bots.DefaultBot.DefaultBot.Struct60.MoveNext()
// End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Buddy.Coroutines.Coroutine.Class66.Struct18.MoveNext()
//End of inner exception stack trace ---
at Buddy.Coroutines.Coroutine.method_2(Boolean bool_2)
at Buddy.Coroutines.Coroutine.method_0(Boolean bool_2)
at Buddy.Coroutines.Coroutine.Resume()
at Triton.Bot.Logic.Bots.DefaultBot.DefaultBot.Tick()
at Triton.Bot.BotManager.smethod_1(IBot ibot_1)
The text was updated successfully, but these errors were encountered: