系统安全C/C++ [2018]在 Windows 10 上 WriteProcessMemory 比 NtWriteVirtualMemory 慢很多 WriteProcessMemory 不仅仅是一个NT包装函数,它还执行一些额外的工作(例如保护内存、刷新指令等) 通过逆向WPM 调用 NtQueryVirtualMemory 来确定我们正在写入的区域中页面的访问保护。如果访问保护不是正确的,WPM 将设置 ACCESS_VIOLATION 错误代码并返回(如果访问保护是 PAGE_NOACCES 或 PAGE_READONLY)。 如果没有,它会调用 NtProtectVirtualMemory 设置适当的访问保护。检查之后,函数调用 NtWriteVirtualMemory 和 NtFlushInstructionCache,对它们进行更多检查,然后返回。 这就是为什么慢的原因 阅读全文 2023-09-10 huoji 0 条评论
系统安全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里面的实现+注释:  阅读全文 2023-07-09 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]迅速上手meta的llama模型 首先确保自己有足够的资源配置.这边给个资源配置表: ### 硬件要求 7B模型: 1张3090就行,很垃圾,没什么效果 13B模型: 2张3090就行,很垃圾,没什么效果 30B模型: 4张3090是最低要求,推理速度极慢.有条件四张A100 60B模型: 没跑过 这边以30B模型为例: 首先克隆项目: https://github.com/facebookresearch/llama 然后自己网上找个30B的权重 阅读全文 2023-03-13 huoji 2 条评论