2021年04月25日
int FakeAddrStart(unsigned char * addr, uint64 size) { mach_vm_size_t region_size = (mach_vm_size_t)size; mach_vm_address_t region = (vm_address_t)addr; /* Change memory protections to rw- */ if (vm
2020年10月22日
frida -l hook.js 'Process Name'hook.jsconst HookModuleName='Process Name'
function main() {
var imp = ObjC.classes.NSDictionary['- objectForKey:'];
Interceptor.attach(imp.implementati
2020年09月28日
var fs = require("fs");
const {
exec
} = require("child_process");
var path = require('path');
var name = process.argv[2];
console.log(name);
exec(`mkdir&n
2020年05月11日
In the previous post we looked at different ways to inject code into tasks on macOS. The goal being to create increased awareness of the type of methods attackers writing malicious code on macOS might use. In this post I wanted to focus in
2020年03月25日
假设 这个文件为要修改的文件 Bvcn.javajavac --release 9 Bvcn.java -d .jar -uvf 路径到.jar 包名到 Bvcn.class
2019年05月09日
前言在逆向和保护的过程中,总会涉及到反调试和反反调试的问题,这篇文章主要是总结一下几种常见的反调试手段以及反反调试的方法。反调试ptrace为了方便应用软件的开发和调试,从Unix的早期版本开始就提供了一种对运行中的进程进行跟踪和控制的手段,那就是系统调用ptrace()。通过ptrace可以对另一个进程实现调试跟踪,同时ptrace还提供了一个非常有用的参数那就是PT_DENY_ATTACH,这个参数用来告诉系统,阻止调试器依附。所以最常用的反调试方案就是通过调用ptrace来实现反调试。#i
2018年09月05日
cy# @import com.saurik.substrate.MS
cy# var oldf = {}
cy# var log = []cy# MS.hookFunction(fopen, function(path, mode) {
var
2017年07月03日
DYLD_INSERT_LIBRARIES @executable_path@rpath@loader_path@executable_path 这个变量表示可执行程序所在的目录. 比如 /path/XXX.app/Contents/MacOS/@loader_path 这个变量表示每一个被加载的 binary (包括可执行程序, dylib, framework 等) 所在的目录. 在一个进程中, 对于每一个模块, @loader_path 会解析成不用的路径, 而 @executa