C/C++ [2022]syscall直接调用 所有的r3的api在X64上最终都是底层syscall的实现,所谓syscall是进内核的一个指令.除此之外还有int、异常等指令 直接进行syscall调用能绕过一些R3的hook.这不是什么魔法,这是从windows XP就开始流行的技术: 阅读全文 2022-11-04 huoji 0 条评论
系统安全工具软件C/C++一线开发 [2021]不用hook在R3实现全局捕获syscall调用 在R3下ETW实现了一套接口允许你拿到一些syscall调用信息 在cmd下,输入如下代码: ```cpp logman start "NT Kernel Logger" -p "Windows Kernel Trace" (syscall) -o sys.etl -ets ``` 一段时间后停止 ```cpp logman stop "NT Kernel Logger" -ets ``` 接着转换成可读的格式: ```cpp tracerpt sys.etl ``` 你就看到对应的syscall了:  **但是,看情况我们目前只能拿得到两个信息: ** 1. syscall的index 2. syscall的处理器id 3. syscall的地址 **我们没办法拿到的信息并且是关键信息的有: ** 1. syscall的进程id 2. syscall的具体名字/内容 **我将会在这篇文章介绍一种非常巧妙的移花接木的方法来获取这些必要信息并且实现r3的dll注入检测 ** ### 线程切换 我们需要第一步推导出syscall的调用者是谁,但是etw并没有给我们更多的详细信息,因此我们需要做一个hack去获取它,那就是通过线程切换事件 线程切换事件ETW也会给我们消息,我们能知道: 1.老线程id 2.新线程id 3.老线程的状态 4.当前处理器id 阅读全文 2021-10-19 huoji 0 条评论
二进制安全C/C++汇编 [2021]syscall、sysret研究 https://events.static.linuxfound.org/sites/events/files/slides/entry-lce.pdf 备份: [entry-lce.pdf](https://key08.com/usr/uploads/2021/04/37404595.pdf) 阅读全文 2021-04-20 huoji 0 条评论