MCPcopy Create free account
hub / github.com/axhlzy/Il2CppHookScripts / addBreakPoint

Method addBreakPoint

Il2cppHook/_Ufunc.js:519–595  ·  view source on GitHub ↗
(imgOrClsPtr = "CommonClass")

Source from the content-addressed store, hash-verified

517 static array_attach_failed = new Array();
518 static array_methodValue_cache = new Array();
519 static addBreakPoint(imgOrClsPtr = "CommonClass") {
520 if (imgOrClsPtr instanceof NativePointer) {
521 innerImage(imgOrClsPtr);
522 }
523 else if (typeof imgOrClsPtr == "number") {
524 if (Process.arch == "arm64")
525 throw new Error("Use '0x..' instead of number");
526 innerImage(ptr(imgOrClsPtr));
527 }
528 else if (typeof imgOrClsPtr == "string") {
529 if (Process.arch == "arm64" && imgOrClsPtr.trim().startsWith("0x"))
530 return innerImage(ptr(imgOrClsPtr));
531 if (imgOrClsPtr == "CommonClass" || imgOrClsPtr == "JNI" || imgOrClsPtr == "Soon")
532 return checkSpecialClass(imgOrClsPtr);
533 if (base_1.HookerBase._list_images_names.toString().includes(imgOrClsPtr)) {
534 base_1.HookerBase._list_images.forEach((image) => {
535 if (image.name.includes(imgOrClsPtr)) {
536 formart_1.formartClass.printTitile("Found : ImageName: " + imgOrClsPtr + " at " + image.handle);
537 innerImage(image.handle);
538 }
539 });
540 }
541 else {
542 let clsPtr = findClass(imgOrClsPtr);
543 if (!clsPtr.isNull()) {
544 formart_1.formartClass.printTitile("Found : ClassName: " + imgOrClsPtr + " at " + clsPtr);
545 innerImage(clsPtr);
546 }
547 else {
548 let imageName = (0, fastest_levenshtein_1.closest)(imgOrClsPtr, base_1.HookerBase._list_images_names);
549 LOGE(`You mean this ? ${imageName} @ ${Il2Cpp.Domain.assemblies.filter(item => item.name.includes)[0].handle}`);
550 }
551 }
552 }
553 function innerImage(imgOrClsPtr) {
554 let lastSize = Breaker.map_attachedMethodInfos.size;
555 if (imgOrClsPtr.isNull())
556 throw new Error("can't attach nullptr");
557 if (base_1.HookerBase._list_images_pointers.map(item => Number(item)).includes(Number(imgOrClsPtr))) {
558 let imageHandle = imgOrClsPtr;
559 new Il2Cpp.Image(imageHandle).classes
560 .flatMap(cls => cls.methods)
561 .forEach(Breaker.attachMethod);
562 }
563 else {
564 let classHandle = imgOrClsPtr;
565 new Il2Cpp.Class(classHandle).methods.forEach(Breaker.attachMethod);
566 }
567 LOGO(`${getLine(40, "-")}\n Attached ${Breaker.map_attachedMethodInfos.size - lastSize} methods / All ${Breaker.map_attachedMethodInfos.size} methods\n${getLine(85, "-")}`);
568 }
569 function checkSpecialClass(type) {
570 if (type == "CommonClass") {
571 base_1.HookerBase._list_images.forEach((image) => {
572 if (CommonClass.includes(image.assembly.name)) {
573 formart_1.formartClass.printTitile("Found : ImageName: " + image.name + " at " + image.handle);
574 innerImage(image.handle);
575 }
576 });

Callers

nothing calls this directly

Calls 3

isNullMethod · 0.80
LOGEFunction · 0.70
toStringMethod · 0.65

Tested by

no test coverage detected