草庐IT

CRT_DEBUGGER_HOOK

全部标签

ios - 如何通过 CocoaPods 安装后 Hook 修改 OTHER_LDFLAGS?

我的项目使用CocoaPods和自定义xcconfig文件。到目前为止,这还没有造成任何问题:我只需要在自定义配置的末尾#includeCocoaPods生成的配置。但是,我遇到了一个问题,需要根据xcconfig有条件地指定OTHER_LDFLAGS,但我不知道该怎么做。一开始,我试过像这样简单地记录OTHER_LDFLAGS,但实际上并没有记录标志:post_installdo|installer_representation|installer_representation.project.targets.eachdo|target|target.build_configurat

ios - 如何通过 CocoaPods 安装后 Hook 修改 OTHER_LDFLAGS?

我的项目使用CocoaPods和自定义xcconfig文件。到目前为止,这还没有造成任何问题:我只需要在自定义配置的末尾#includeCocoaPods生成的配置。但是,我遇到了一个问题,需要根据xcconfig有条件地指定OTHER_LDFLAGS,但我不知道该怎么做。一开始,我试过像这样简单地记录OTHER_LDFLAGS,但实际上并没有记录标志:post_installdo|installer_representation|installer_representation.project.targets.eachdo|target|target.build_configurat

git提交失败running pre-commit hook: lint-staged [33m‼ Some of your tasks use `git add` command

先上图吧0filecommitted,1filefailedtocommit:代码更新>runningpre-commithook:lint-staged[33m[33m‼[33mSomeofyourtasksusegitaddcommand.Pleaseremoveitfromtheconfigsinceallmodificationsmadebytaskswillbeautomaticallyaddedtothegitcommitindex.[39m[STARTED]Preparing…[SUCCESS]Preparing…[STARTED]Runningtasks…[STARTED]Ru

VS 远程调试-Remote Debugger

小编开发的exe在本地可以正常运行,放到别的PC上经常遇各种各样的奇葩问题,但是研发工作环境又无法复现。这个时候远程调试可以发挥它强大的功能,在本地就可以调试运行在现场环境的程序。一、获取远程工具有两种方式能够获取RemoteDebugger1.从官网下载:https://learn.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-20192.从主机安装VisualStudio的目录中获取,我的目录为:D:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\Common7

放弃 console.log 吧!用 Debugger 你能读懂各种源码

很多同学不知道为什么要用debugger来调试,console.log不行么?还有,会用debugger了,还是有很多代码看不懂,如何调试复杂源码呢?这篇文章就来讲一下为什么要用这些调试工具:console.logvsDebugger相信绝大多数同学使用console.log调试的,把想看的变量值打印在控制台。这样能满足需求,但是遇到对象的打印就不行了。比如我想看webpack源码里的compilation对象的值,我打印了一下:但你会发现对象的值也是对象的时候不会展开,而是打印一个[Object][Array]这种字符串。更致命的是打印的太长会超过缓冲区的大小,terminal里会显示不全:

放弃 console.log 吧!用 Debugger 你能读懂各种源码

很多同学不知道为什么要用debugger来调试,console.log不行么?还有,会用debugger了,还是有很多代码看不懂,如何调试复杂源码呢?这篇文章就来讲一下为什么要用这些调试工具:console.logvsDebugger相信绝大多数同学使用console.log调试的,把想看的变量值打印在控制台。这样能满足需求,但是遇到对象的打印就不行了。比如我想看webpack源码里的compilation对象的值,我打印了一下:但你会发现对象的值也是对象的时候不会展开,而是打印一个[Object][Array]这种字符串。更致命的是打印的太长会超过缓冲区的大小,terminal里会显示不全:

Unidbg中Hook和Patch

hook之前之后类似于xposedpatch两种方式,直接修改hex,以及指令转化hex(keystone将汇编指令转化为hex)hextoarm|armtohex推荐网站:https://armconverter.com/packagecom.dta.lesson5;importcom.github.unidbg.AndroidEmulator;importcom.github.unidbg.Emulator;importcom.github.unidbg.Module;importcom.github.unidbg.arm.HookStatus;importcom.github.unidb

git hook

hookhook翻译为钩子,简单说就是监听某个事件(操作),然后触发自定义逻辑在git中可以监听commit,push等操作,在操作之前或之后触发对应的hook,在hook中写自定义的逻辑,比如在提交之前做一些检查,检查未通过不允许提交下面这些是githook触发的时机其中蓝色方块是某些操作之后触发,它不会阻塞操作,就是执行一些额外的操作黄色和红色方块是某些操作之前触发,可以做一些检查,不满足条件会阻塞操作,区别在于黄色方块的操作可以跳过克隆一个仓库并显示隐藏的文件,可以看到仓库根目录下的.git文件夹中有提供了一些hook例子,这些hook默认不生效,去掉.sample后缀才会生效这些hoo

uniapp 开发微信小程序出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“

原因:由于JSON.parse无法识别某些url中的特殊字符比如&等特殊符号造成的。解决办法:页面A(JSON.stringify传参)messageInfo(item){uni.navigateTo({url:`/pagesA/pages/message/chat?info=${encodeURIComponent(JSON.stringify(item))}&type=2`})},页面B(JSON.parse接受参数)接收页面onLoad(option){letinfo=JSON.parse(decodeURIComponent(option.info))}

unicornHook原生hook

都知道unidbg是基于unicorn开发的;hook_add_new第一个参数是Hook回调,我们这里选择CodeHook,它是逐条Hook,参数2是起始地址,参数3是结束地址,参数4一般填null。这意味着从起始地址到终止地址这个范围内的每条指令,我们都可以在其执行前处理它。这一点的优点我很喜欢packagecom.hookInUnidbg;importcom.github.unidbg.AndroidEmulator;importcom.github.unidbg.Emulator;importcom.github.unidbg.Module;importcom.github.unidb