09
2019
05

关于反调试&反反调试那些事

前言在逆向和保护的过程中,总会涉及到反调试和反反调试的问题,这篇文章主要是总结一下几种常见的反调试手段以及反反调试的方法。反调试ptrace为了方便应用软件的开发和调试,从Unix的早期版本开始就提供了一种对运行中的进程进行跟踪和控制的手段,那就是系统调用ptrace()。通过ptrace可以对另一个进程实现调试跟踪,同时ptrace还提供了一个非常有用的参数那就是PT_DENY_ATTACH,这个参数用来告诉系统,阻止调试器依附。所以最常用的反调试方案就是通过调用ptrace来实现反调试。#i
05
2018
09

cycript hook method

cy# @import com.saurik.substrate.MS cy# var oldf = {} cy# var log = []cy# MS.hookFunction(fopen, function(path, mode) {         var 
03
2017
07

DYLD_INSERT_LIBRARIES的常用路径

DYLD_INSERT_LIBRARIES @executable_path@rpath@loader_path@executable_path 这个变量表示可执行程序所在的目录. 比如 /path/XXX.app/Contents/MacOS/@loader_path 这个变量表示每一个被加载的 binary (包括可执行程序, dylib, framework 等) 所在的目录. 在一个进程中, 对于每一个模块, @loader_path 会解析成不用的路径, 而 @executa