Forum › Forums › Discussion › Miqobot (unofficial) status FAQ
This topic contains 178 replies, has 71 voices, and was last updated by Ai 2 years, 6 months ago.
-
AuthorPosts
-
April 1, 2022 at 5:43 pm #36545April 2, 2022 at 8:41 pm #36559
Out of curiosity, is there a scenario where a moderator team could be equipped to take the reins for an extended period of time?
For the forums, yes. For the bot, no.
If it comes down to it, I will assist as much as I can, and try to create a hacky solution for the bot to keep working, but as nobody but the miqo team has access to the source code, its gonna be a lot of work to do that. The best I could do is find the new memory layout, and then try to hook into miqo to overwrite where it’s looking in the games memory, but that could very well take months to do.
The mods are just volunteers, and I’m not even a mod…By the dev team’s own admission, Miqobot downloads her modules from a server at runtime in an attempt to discourage reverse engineering. I theorize that creating any sort of “patch” would involve 1. extracting these modules from memory, 2. do enough reverse engineering to locate the data we are interested in, 3. create some sort of wrapper that can identify and patch the data at runtime without causing any other issues. Additionally, this method assumes that Miqobot has no innate “anti-cheat” so to speak, and that the modules are downloaded in their entirety & Miqobot does not need to fetch any server-side information “on demand” that’s critical to our goal.
April 3, 2022 at 12:57 pm #36563Yup, not even I as moderator have real insight into the coding of Miqobot. My job is to manage the forums, and that’s it.
Do you have any kind of contact with the miqobot team?
I don’t give two fucks about the bot dying soon, I just wanna know if they’re alive.
April 3, 2022 at 3:16 pm #36567Out of curiosity, is there a scenario where a moderator team could be equipped to take the reins for an extended period of time?
For the forums, yes. For the bot, no.
If it comes down to it, I will assist as much as I can, and try to create a hacky solution for the bot to keep working, but as nobody but the miqo team has access to the source code, its gonna be a lot of work to do that. The best I could do is find the new memory layout, and then try to hook into miqo to overwrite where it’s looking in the games memory, but that could very well take months to do.
The mods are just volunteers, and I’m not even a mod…By the dev team’s own admission, Miqobot downloads her modules from a server at runtime in an attempt to discourage reverse engineering. I theorize that creating any sort of “patch” would involve 1. extracting these modules from memory, 2. do enough reverse engineering to locate the data we are interested in, 3. create some sort of wrapper that can identify and patch the data at runtime without causing any other issues. Additionally, this method assumes that Miqobot has no innate “anti-cheat” so to speak, and that the modules are downloaded in their entirety & Miqobot does not need to fetch any server-side information “on demand” that’s critical to our goal.
A memory patch will suffice, overwriting the memory addresses where miqo looks at in runtime… Doing this with something like cheat engine is possible, the main issue being finding the new addresses, and finding a method to consistently locate where the memory values miqo uses are stored within miqo after it loads the module, because that is all over the place… Different machines produce slightly different results, so making it work for others is the biggest hurdle. I got a patch for the crafting stuff in much the same manner, but it’s specific to one device… Once the memory addresses are loaded in, which miqo has to do to find the values it needs, the modification can’t be prevented by any anti tamper. The process would be something like:
Start game.
Start Miqo.
Start Cheat engine with custom table.
Activate base module entry, miqo now hooks to game.
Activate combat assist in miqo.
Activate combat module entry, miqo can now read combat related data.
Disable combat module entry (or miqo will crash).
Disable combat assist in miqo.
Getting it to work on one device is easy, getting it to work for everyone is what takes time, and as I’m jobhunting, I am low on time.April 3, 2022 at 4:06 pm #36568the main issue being finding the new addresses, and finding a method to consistently locate where the memory values miqo uses are stored within miqo after it loads the module, because that is all over the place… Different machines produce slightly different results, so making it work for others is the biggest hurdle.
In other words doing all the work Miqo team has been doing for every patch.
April 3, 2022 at 5:21 pm #36570Out of curiosity, is there a scenario where a moderator team could be equipped to take the reins for an extended period of time?
For the forums, yes. For the bot, no.
If it comes down to it, I will assist as much as I can, and try to create a hacky solution for the bot to keep working, but as nobody but the miqo team has access to the source code, its gonna be a lot of work to do that. The best I could do is find the new memory layout, and then try to hook into miqo to overwrite where it’s looking in the games memory, but that could very well take months to do.
The mods are just volunteers, and I’m not even a mod…By the dev team’s own admission, Miqobot downloads her modules from a server at runtime in an attempt to discourage reverse engineering. I theorize that creating any sort of “patch” would involve 1. extracting these modules from memory, 2. do enough reverse engineering to locate the data we are interested in, 3. create some sort of wrapper that can identify and patch the data at runtime without causing any other issues. Additionally, this method assumes that Miqobot has no innate “anti-cheat” so to speak, and that the modules are downloaded in their entirety & Miqobot does not need to fetch any server-side information “on demand” that’s critical to our goal.
A memory patch will suffice, overwriting the memory addresses where miqo looks at in runtime… Doing this with something like cheat engine is possible, the main issue being finding the new addresses, and finding a method to consistently locate where the memory values miqo uses are stored within miqo after it loads the module, because that is all over the place… Different machines produce slightly different results, so making it work for others is the biggest hurdle. I got a patch for the crafting stuff in much the same manner, but it’s specific to one device… Once the memory addresses are loaded in, which miqo has to do to find the values it needs, the modification can’t be prevented by any anti tamper. The process would be something like:
Start game.
Start Miqo.
Start Cheat engine with custom table.
Activate base module entry, miqo now hooks to game.
Activate combat assist in miqo.
Activate combat module entry, miqo can now read combat related data.
Disable combat module entry (or miqo will crash).
Disable combat assist in miqo.
Getting it to work on one device is easy, getting it to work for everyone is what takes time, and as I’m jobhunting, I am low on time.Is this something you could make a guide for so that others can do it? Instead of making a patch that works for everyone might be easier to make make a guide for each person to do themselves.
April 3, 2022 at 6:38 pm #36571I would usually disagree with divulging stuff like that, but I assume the MiqoTeam would be open to an exception this one time I suppose.
It does make sense, takes the pressure off them for a bit and if people really want to get the new addresses they can so the bot can be used. If not the bot timer goes into freeze-mode anyway, so it’s not like your subscription is going to waste.
At least I hope that’s an automated thing and not some “switch” the team has to flip manually.
April 3, 2022 at 7:48 pm #36572the main issue being finding the new addresses, and finding a method to consistently locate where the memory values miqo uses are stored within miqo after it loads the module, because that is all over the place… Different machines produce slightly different results, so making it work for others is the biggest hurdle.
In other words doing all the work Miqo team has been doing for every patch.
Yup! With a few extra steps because I don’t have the source code!
Is this something you could make a guide for so that others can do it? Instead of making a patch that works for everyone might be easier to make make a guide for each person to do themselves.
I could, but most people wouldn’t be able to even with a step by step guide, as it requires knowledge about assembly language and memory interpretation to understand what you’re looking for. In the end, someone still has to go through the steps, and do it for everyone…
Steps that are required are as follows:
1. Start Miqo.
2. Use any software that lets you browse, search, and edit memory. Cheat engine is one I would recommend as it’s easy to set up, and free. Hook it up to Miqo.
3. Activate any module within Miqo (including the base module, which hooks it to the game).
4. Trace what addresses are altered within memory upon activating the module. The address reference you need is in that.
5. Find the memory address reference (MAR) that miqo reads data from within that.
6. Find a way to locate the MAR consistently using memory that’s around the region (this is the hard part due to how different CPUs and operating systems create different patterns in memory with how miqo loads in stuff).
6b. Find where the values are in memory in the new version of FF14. (Miqo team does this normally, and then just rewrites the source code)
7. Create a routine that rewrites the MAR to the new address. Cheat engine lets you do this with a simple on/off toggle if you know how to do that. (miqo just edits in the source code, much easier version of the step)
8. Test it on various pc builds.The only time I will release something is if:
A. Miqo team is still missing.
B. I have the time to go through this process.
C. It isn’t impossible to make something that’s easy to use for random people that doesn’t expose miqos inner workings.- This reply was modified 2 years, 7 months ago by soviras.
April 3, 2022 at 9:28 pm #36574April 3, 2022 at 9:30 pm #36575According to my knowledge Miqobot has some form of Anti-Cheat implemented.
There have been several occasions of people complaining on the forums about getting their license key revoked, their money refunded and their IP banned, only to result in Miqobot clearing that up, that those people have been attempting to reverse-engineer the bot and got auto-banned from the server.This is also the reason why there is no more free trial of Miqobot. Too many people have attempted to reverse-engineer the trial version to cheat themselves out of the monthly sub.
Something to keep in mind.
April 3, 2022 at 10:14 pm #36576the main issue being finding the new addresses, and finding a method to consistently locate where the memory values miqo uses are stored within miqo after it loads the module, because that is all over the place… Different machines produce slightly different results, so making it work for others is the biggest hurdle.
In other words doing all the work Miqo team has been doing for every patch.
Yup! With a few extra steps because I don’t have the source code!
Is this something you could make a guide for so that others can do it? Instead of making a patch that works for everyone might be easier to make make a guide for each person to do themselves.
I could, but most people wouldn’t be able to even with a step by step guide, as it requires knowledge about assembly language and memory interpretation to understand what you’re looking for. In the end, someone still has to go through the steps, and do it for everyone…
Steps that are required are as follows:
1. Start Miqo.
2. Use any software that lets you browse, search, and edit memory. Cheat engine is one I would recommend as it’s easy to set up, and free. Hook it up to Miqo.
3. Activate any module within Miqo (including the base module, which hooks it to the game).
4. Trace what addresses are altered within memory upon activating the module. The address reference you need is in that.
5. Find the memory address reference (MAR) that miqo reads data from within that.
6. Find a way to locate the MAR consistently using memory that’s around the region (this is the hard part due to how different CPUs and operating systems create different patterns in memory with how miqo loads in stuff).
6b. Find where the values are in memory in the new version of FF14. (Miqo team does this normally, and then just rewrites the source code)
7. Create a routine that rewrites the MAR to the new address. Cheat engine lets you do this with a simple on/off toggle if you know how to do that. (miqo just edits in the source code, much easier version of the step)
8. Test it on various pc builds.The only time I will release something is if:
A. Miqo team is still missing.
B. I have the time to go through this process.
C. It isn’t impossible to make something that’s easy to use for random people that doesn’t expose miqos inner workings.I haven’t personally messed around with your method, and I could be wrong, but from my own knowledge of reversing this is POSSIBLE to turned into a patch for everyone. It’s a matter of finding the assembly instruction(s) that are responsible for allocating + placing the MAR value in memory, no? If the value(s) in question are implemented directly in Miqobot source code, and you say that the location changes from machine to machine depending on where the memory is allocated, then I can’t help but think the address is encoded directly into an assembly instruction, such as
mov [SomeDynamicLocation], 0x123456789
and then referenced from there. If not that, then the value lives as hex bytes inside a module, which gets mapped dynamically into memory at runtime and would be referenced likemov rax, [SomeConstantAddress]
/mov rax, [SomeModule.123456789]
/mov rax, [SomeDynamicAddress + SomeConstantAddress]
.I have no formal training in this so again I could be totally wrong, but those are patterns I see a lot when I do this kind of thing.
April 3, 2022 at 10:40 pm #36577According to my knowledge Miqobot has some form of Anti-Cheat implemented.
There have been several occasions of people complaining on the forums about getting their license key revoked, their money refunded and their IP banned, only to result in Miqobot clearing that up, that those people have been attempting to reverse-engineer the bot and got auto-banned from the server.This is also the reason why there is no more free trial of Miqobot. Too many people have attempted to reverse-engineer the trial version to cheat themselves out of the monthly sub.
Something to keep in mind.
There is, but not on every part. I know the extent of their protection, and would advice people to not tamper with it without knowing what you’re doing. That’s also why it’s done in this exact way, no alterations until after you cleared the authentication process.
I’ve modified Miqo for months now, not in any bad way though. I pay for it, just add features that I want or fix broken parts earlier. Would love to have a full programmable interface, more advanced than scenario, in the future, where we could code things and then share it the same way as we do for other things. One example is fixing the crafting calculations. Miqo is community driven, and letting the community do more direct programming could take a significant burden off of Miqos dev team in the long run.
I haven’t personally messed around with your method, and I could be wrong, but from my own knowledge of reversing this is POSSIBLE to turned into a patch for everyone. It’s a matter of finding the assembly instruction(s) that are responsible for allocating + placing the MAR value in memory, no? If the value(s) in question are implemented directly in Miqobot source code, and you say that the location changes from machine to machine depending on where the memory is allocated, then I can’t help but think the address is encoded directly into an assembly instruction, such as
mov [SomeDynamicLocation], 0x123456789
and then referenced from there. If not that, then the value lives as hex bytes inside a module, which gets mapped dynamically into memory at runtime and would be referenced likemov rax, [SomeConstantAddress]
/mov rax, [SomeModule.123456789]
/mov rax, [SomeDynamicAddress + SomeConstantAddress]
.I have no formal training in this so again I could be totally wrong, but those are patterns I see a lot when I do this kind of thing.
You are correct, but, due to how miqo does things, the memory structure is not exactly consistent across different devices. Finding the place the address is stored that works on all devices is the hard part as a result.
April 3, 2022 at 11:17 pm #36578April 4, 2022 at 12:48 am #36579April 4, 2022 at 3:32 am #36580 -
AuthorPosts
The topic ‘Miqobot (unofficial) status FAQ’ is closed to new replies.