Jump to content

rafgeekee

Member
  • Posts

    6
  • Joined

  • Last visited

Profile Information

  • iDevice
    iPhone Xs Max
  • iOS Version
    14.8
  • Jailbroken
    Yes
  • Android Device
    Lots of them

Recent Profile Visitors

208 profile views

rafgeekee's Achievements

Newbie

Newbie (1/14)

  • Appreciating Others
  • Conversation Starter
  • Super Dedicated
  • First Post
  • Dedicated

Recent Badges

0

Reputation

  1. Thanks @ꞋꞌꞋꞌꞋꞌꞋꞌ This has helped get me in the right direction - As I've hooked into an instance, I'm able to reference the field pointer using the offest as described . Although I am having difficulty getting my hook kick in at the right time. This is mostly down to finding a function which is called in a timely fasion which I need to dig more to find. This line has been a great help *(int *) ((uint64_t) instance + 0x1C) = 9999; For reference to anybody looking for similar help, This can be changed to any type, an example of a bool and float below: *(bool *) ((uint64_t) instance + 0x1C) = true; *(float *) ((uint64_t) instance + 0x1C) = 1.0f; -- In view of Unknown types like CRefItem, passing in a void still needs the pointer which I'm struggling to understand. Could you help further on this? Here is the code I'm looking at auto modInit = reinterpret_cast<void(*) (void *, void *, int, bool)>(getRealOffset(0x1ABB3A8)); void(*oldInit)(void *this_); void newInit(void *this_) { if ([switches isSwitchOn:@"9999 Items"]) { modInit(this_, paramName ,9999, false); return; } old_Init(this_); } // SETUP void setup() { HOOK(0x1ABB3A8, newInit, oldInit); [switches addSwitch:@"9999 Items" description:@"Enable on Oppenents Turn" ]; } Could you help me understand how i'd pull and pass paramName with the correct CRefItem pointer?
  2. Hi All, I'm currently creating a series of mod menu's using Ted2's template - I'm bumping into similar issues for a couple of mods. I'm looking for a way to modify a field. Hypothetical Example: Assume we have this decompiled from il/dnSpy [Token(Token = "0x2000342")] public class Item { [Token(Token = "0x400131B")] [FieldOffset(Offset = "0x1C")] public int Amount; [Token(Token = "0x4001313")] [FieldOffset(Offset = "0x30")] public bool IsUnlimited; [Address(RVA = "0x1ABB3A8", Offset = "0x1ABB3A8", VA = "0x1ABB3A8")] public void Init(CRefItem refMain, int amount = 0, bool is_attached = false) { } ... } There is no getter or setter for the Amount or IsUnlimited field. Goal: Forceable set Amount to 9999 for all Items. Forceable set IsUnlimited to True for all Items. Attempts and Theory: In Ted2's template, the best approach i've been able to figure out to get anywhere close to a meaningful outcome is hooking to the init function and pass in desired Amount argument. However, Tweak.xm Doesnt know what a CRefItem is, So I cant pass this param into my reinterpreted cast Heres an example Tweak.xm to show this offset for the init function is 0x1ABB3A8 #import "Macros.h" auto modInit = reinterpret_cast<void(*) (void *, CRefItem, int, bool)>(getRealOffset(0x1ABB3A8)); void(*oldInit)(void *this_); void newInit(void *this_) { if ([switches isSwitchOn:@"9999 Items"]) { modInit(this_, ???????? ,9999, false); return; } old_Init(this_); } // SETUP void setup() { HOOK(0x1ABB3A8, newInit, oldInit); [switches addSwitch:@"9999 Items" description:@"Enable on Oppenents Turn" ]; } ... Rest of Ted2 Stuff Notice: This isnt working code - this is just an example of whats going through my mind Issues I see: 1) I'm not too sure what to hook onto in the setup as i've already got a casted reference to the Init function - hooking into something im casting to and calling again seems like a bad idea. 2) Im not too sure how to pass the CRefItem argument into the modInit call. 3) IsAttached arg will always be False - which may not always be the case - would be nice to know how to get the original passed args 4) Does not deal with IsUnlimited field 5) I could go up the tree in the decompiled code and cast to functions elsewhere but they all require types which I dont understand how to pass (Vector3, CRefItem...) Reading From Other NIC Templates: I'v been digging around and noticed something in R16s template called UIKeyPatch, From the docs it seems like you're able to set the value of a field using the fields offset //call these inside ur own custom functions *(int*)[UIKeyPatch address:@"0x1C" ptr:this_] = 9999; *(bool*)[UIKeyPatch address:@"0x30" ptr:this_] = true; As we don't have UIKeyPatch in Ted2 and the R16 repo seems to be offline, I can't find out how UIKeyPatch was implemented. The example doesnt show what would be hooked into in the setup function in Tweak.xm as I assume the offsets wouldnt work be different if I hooked into the Init function. Correct me if im wrong. Ask I hope the above examples highlights the gaps in my knowledge and give enough info on what I'm trying to achieve. As I'm using Ted2 and given the R16 Nic Template is unavailable. I've come here to seek help on making this happen. Any advice which can put me on the right path will be greatly appreciated
  3. The Github repo gives me a 404 so the nic and deb files are both offline. I'm tempted to use this over Ted2 because of the Variable Patching capabilities. Specifically UIKeyPatch From what I can tell UIKeyPatch isn't in Ted2 Questions: 1) Does anybody know how to do something similar in Ted2? 2) Does anybody have an idea for why the links are down? any alternate links?
  4. This looks promising can’t wait for iOS support 😋 Doesn’t work with iOS 16
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines