系统安全python二进制安全一线开发 [2023]现代AI杀毒引擎原理+部分代码 之前的鸭鸭引擎当时说要开源了,只不过工作忙一直没空管.这几天闲了一会想找找源码,发现模型都丢了.源码发不出来了,但是没关系,还是能说一下当时怎么做这款引擎的 鸭鸭杀毒一共迭代了3个版本,容我慢慢说 阅读全文 2023-07-19 huoji 3 条评论
C/C++汇编 [2023]VMP 3.x的vPop 好像逛了一圈网上都没有VMP3的vPop的handle的代码,这里是这部分的代码,vPop有两部分实现 这是模式匹配的伪码: ```cpp Vmp3 vPop: 1. mov %pop_size:%pop_reg, [%vsp] add vsp, %pop_size mov op_size, %op_size:[VIP] 2. mov %op_reg, %op_size:[VIP] mov %pop_size: %pop_reg,[VSP] add vsp, %pop_size ``` 这是FDJ里面的实现+注释: ![](https://key08.com/usr/uploads/2023/07/2206852981.png) 阅读全文 2023-07-09 huoji 0 条评论
系统安全工具软件 [2023]通过ACPI检测沙箱 ### 前言 最近 @Daax [公布](https://revers.engineering/evading-trivial-acpi-checks/ "公布")了一个关于ACPI检测虚拟机的方法,我对此比较感兴趣,于是研究了一下 阅读全文 2023-06-19 huoji 0 条评论
系统安全二进制安全C/C++一线开发 [2023]基于ebpf的进程监控实现python + CPP两个例子 python写的demo,用ebpf监控进程创建和退出.内核做不太行,因为内核做目前新Ubuntu不导出excute、fork的东西了(草) 我写了两个demo,一个是python的用于体验ebpf,另外一个是C++的,用于我的"安全鸭"项目 ebpf唯一的问题是栈太小了,导致某些信息需要异步查询,比如进程路径和父进程路径,不知道有没有大哥给出点好的方案 这是python的简单实现: 阅读全文 2023-05-09 huoji 0 条评论
系统安全二进制安全C/C++一线开发 [2023]Linux内核用于IP地址过滤的自增hash表与一个坑 这是linux下我写的用于我的"安全鸭"项目的的hash表,用于netfilter的恶意IP过滤和SYN攻击拦截.看到也没啥公开轮子,就发到这边吧.另外有个hash表的坑不知道有没有大哥能解释一下 坑就是,我使用的hash函数 ``` int idx = hash_32(ip_address_key, table->bucket_num); ``` 是有问题的,对于某些IP地址,会报: ``` shift exponent 4294966328 is too large for 32-bit type 'unsigned int ``` 但很明显netfilter传进来的ip_address是u32,不可能超的,不知道哪里错了,不管他了 源码: ip_hashmap.c 阅读全文 2023-05-09 huoji 1 条评论
游戏安全 [2023]PiDqSerializationWrite 内核SEH安全的拷贝函数 在某些情况下我们不能使用SEH进行memcpy(比如驱动是manual map的情况下),很容易造成蓝屏 这个函数由ntos实现,能实现具有SEH的安全memcpy ![](https://key08.com/usr/uploads/2023/05/4134132757.png) ```cpp PiDqSerializationWriteFn = (u64)FindPattern(Kbase2, "48 89 5C 24 ? 48 89 4C 24 ? 57 48 83 EC 20 41", E("PAGE")); struct bullshit { u64 dst_addr; u32 _0xffffffff; char zero[17]; bool error; }; typedef NTSTATUS(__fastcall* memcp1)(bullshit* _shitDst, pv src, u32 size); auto g = (memcp1)PiDqSerializationWriteFn; bullshit call_data{}; call_data.dst_addr = (u64)dst; call_data._0xffffffff = 0xffffffff; g(&call_data, src, sz); //call_data.error == 1 -> RW failed! ``` 来源: @busybox10 阅读全文 2023-05-05 huoji 2 条评论