Skip to content

Releases: vfsfitvnm/frida-il2cpp-bridge

v0.8.0

23 Apr 17:45
Compare
Choose a tag to compare

Discussion: #285

v0.7.13

22 Apr 14:15
Compare
Choose a tag to compare
  • Add Il2Cpp.Thread::schedule to schedule a delayed callback:
    Il2Cpp.perform(() => {
      const Class: Il2Cpp.Class = ...;
    
      Class.method("MethodName").implementation = function () {
        // we probably are on the "main" thread now
        
        // non blocking
        Il2Cpp.currentThread?.schedule(() => {
          // we are on the same thread!
        }, 1000);
    
        return this.method("MethodName").invoke();
      };
    });
    Of course, it can be used to schedule a callback on a specific thread (see version 0.7.6 release notes). Sometimes, you could face an access violation/abort error when trying to invoke a Il2Cpp function within the wrong thread.
    Il2Cpp.perform(() => {
      const Method: Il2Cpp.Method = ...;
    
      // access violation :(
      Method.invoke();
    
      Il2Cpp.attachedThreads[0].schedule(() => {
        // works :)
        Method.invoke();
      });
    });
    Note: Il2Cpp.Thread::schedule similar to Il2Cpp::scheduleOnInitializerThread. However, they use different approaches. Eventually, one of them will be removed.
    Note: Il2Cpp.Thread::schedule may not work with old Unity versions.

Full Changelog: v0.7.12...v0.7.13

v0.7.12

22 Apr 14:15
Compare
Choose a tag to compare

Full Changelog: v0.7.11...v0.7.12

v0.7.11

22 Apr 14:14
Compare
Choose a tag to compare

Full Changelog: v0.7.10...v0.7.11

v0.7.10

22 Apr 14:14
Compare
Choose a tag to compare
  • Add Il2Cpp.Reference::to to easily create a Il2Cpp.Reference:
    Il2Cpp.perform(() => {
      const TryParse = Il2Cpp.Image.corlib.class("System.Boolean").method("TryParse");
    
      const value = Il2Cpp.Reference.to(false);
    
      console.log(value); // ->false
      TryParse.invoke(Il2Cpp.String.from("TrUe"), value);
      console.log(value); // ->true
    });
    A Il2Cpp.Type is required when creating a reference to a number or NativePointer in order to disambiguate their representation:
    const value = Il2Cpp.Reference.to(1355, Il2Cpp.Image.corlib.class("System.UInt16").type);
  • Make Il2Cpp.Object::unbox directly return a Il2Cpp.ValueType:
    // old
    const valueType = new Il2Cpp.ValueType(object.unbox(), object.class.type);
    // new
    const valueType = object.unbox();

Full Changelog: v0.7.9...v0.7.10

v0.7.9

22 Apr 14:14
Compare
Choose a tag to compare
  • Minor things.

Full Changelog: v0.7.8...v0.7.9

v0.7.8

22 Apr 14:13
Compare
Choose a tag to compare
  • Add Il2Cpp::installExceptionListener.
  • Fix #132.

Full Changelog: v0.7.7...v0.7.8

v0.7.7

22 Apr 14:13
Compare
Choose a tag to compare

Full Changelog: v0.7.6...v0.7.7

v0.7.6

22 Apr 14:13
Compare
Choose a tag to compare
  • Move I2Cpp.Thread::current to Il2Cpp::currentThread.
  • Move I2Cpp.Thread::all to Il2Cpp::attachedThreads.
  • Add Il2Cpp::sheduleOnInitializerThread to run a callback inside the main Il2Cpp thread instead of Frida's one.

Full Changelog: v0.7.5...v0.7.6

v0.7.5

22 Apr 14:12
Compare
Choose a tag to compare

Full Changelog: v0.7.4...v0.7.5