本文目录一览:
中了第3代机器狗变种,高手来帮助下。!
问题描述:新变种机器狗(AtiSrv.exe)病毒的现象及手动处理方法
解决方案:
【以下操作需谨慎,请完整阅读并仔细按照说明进行操作,误操作可能导致系统异常。在操作前,建议您先备份重要数据及注册表。】
新变种机器狗(AtiSrv.exe)行为解析:
本周(2008年3月1日)一款融合机器狗、auto木马群、磁碟机特点的病毒大范围爆发。其主文件名为:AtiSrv.exe
该病毒会迫使杀毒软件失效,安全模式加载、下载大量盗号木马、劫持浏览器、写入rootkits驱动进行自保护....
该病毒简单特征分析:
释放自身到启动文件夹随机加载:
%ALLUSERSPROFILE%\「开始」菜单\程序\启动\AtiSrv.exe 如图所示:
写入执行挂钩:
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
ffHADHAD1042.dll
HKCR\CLSID\{1133c611-c3b1-4626-bd63-6605ea0d3486}
c:\windows\system32\ffhadhad1042.dll
Microsoft
HKCR\CLSID\{45AADFAA-DD36-42AB-83AD-0521BBF58C24}
c:\windows\system32\zjydcx.dll
Microsoft
HKCR\CLSID\{6E6CA8A1-81BC-4707-A54C-F4903DD70BAD}
c:\windows\system32\zgxfdx.dll
Microsoft
HKCR\CLSID\{1DB3C525-5271-46F7-887A-D4E1ADAA7632}
c:\windows\system32\hfrdzx.dll
fJACJAC1041.dll
HKCR\CLSID\{6b22d384-97ba-4c43-81ab-a6bb24e9d831}
c:\windows\system32\fjacjac1041.dll
fNNBNNB1032.dll
HKCR\CLSID\{a6f28a4f-afc8-430e-9093-25083eb3aa77}
c:\windows\system32\fnnbnnb1032.dll
fSACSAC1016.dll
HKCR\CLSID\{f93de3de-bc82-4f9a-a3fc-e49c4fe9c38d}
c:\windows\system32\fsacsac1016.dll
winsys8v.sys
HKCR\CLSID\{6167F471-EF2B-41DD-A5E5-C26ACDB5C096}
c:\program files\internet explorer\plugins\winsys8v.sys(该文件会同时写入BHO加载)
写入Appinit_dlls由于写入过多dll信息导致sreng无法检测到该项目。数据如下:
bauhgnem.dll,eohsom.dll,fyom.dll,sauhad.dll,ijougiemnaw.dll,taijoad.dll,lnaixnauhqq.dll,idtj.dll,vhqq.dll,atgnehz.dll,rsqq.dll,tsqc.dll,vauyiqvlnaix.dll,wQ.dll,fmxh.dll,cty.dll,pahzij.dll,jz.dll,bz.dll,pyomielnux.dll,mhtd.dll,qnefnaib.dll,ej.dll,uixauh.dll,hjiq.dll,kiluw.dll,dsfg.dll,yqhs.dll,oaijihzeuyouhz.dll,jemnaw.dll,cuhad.dll,laixuhz.dll,rfhx.dll,mnauygniqaixnaij.dll,oqnauhc.dll,xjxr.dll,utiemnaw.dll,sve.dll,wininat.dll,gnolnait.dll,zadnew.dll,htwx.dll,knaixnauhuoyizqq.dll,duygnef.dll,gmx.dll,nadgnohiac.dll,agzg.dll,qlihzouhgnfe.dll,bchib.dll,tzm.dll,r2.dll,slcs.dll,xptyj.dll,xhtd.dll,QQ.dll,sfhx.dll,gnaixnauhqq.dll,3auhad.dll,oadnew.dll,iemnaw.dll,qcsct.dll,oadgnohiac.dll,iqnauhc.dll,aixauh.dll,ddtj.dll,nuygnef.dll,uohsom.dll,gnefnaib.dll,ijiq.dll,hjxr.dll,naijoad.dll,naixuhz.dll,nahzij.dll,fmxh.dll,zqhs.dll,jsfg.dll,utgnehz.dll,uyom.dll,wtiemnaw.dll,uyomielnux.dll,vlihzouhgnfe.dll,2ty.dll,nauhgnem.dll,auhad.dll,rj.dll,hz.dll,naijihzeuyouhz.dll,xhqq.dll,jmx.dll,dgzg.dll,gsqq.dll,fz.dll,gnaixnauhuoyizqq.dll,gnolnait.dll,jsqc.dll,dqncj.dll,eve.dll,2nauygniqaixnaij.dll,niluw.dll,ijougiemnaw.dll,wtwx.dll,jghf.dll,msd.dll,asj.dll,her.dll,awf.dll,
目的是为了安全模式也能加载,导致用户修复安全模式无效。如图所示:
后台联网下载木马程序:
1=***u.com/wm/1.exe
2=***u.com/wm/2.exe
3=***u.com/wm/3.exe
4=***u.com/wm/4.exe
5=***u.com/wm/5.exe
6=***u.com/wm/6.exe
7=***u.com/wm/7.exe
8=***u.com/wm/8.exe
9=***u.com/wm/9.exe
10=***u.com/wm/10.exe
11=***u.com/wm/11.exe
12=***u.com/wm/12.exe
13=***u.com/wm/13.exe
14=***u.com/wm/14.exe
15=***u.com/wm/15.exe
16=***u.com/wm/16.exe
17=***u.com/wm/17.exe
18=***u.com/wm/18.exe
19=***u.com/wm/19.exe
20=***u.com/wm/20.exe
21=***u.com/wm/21.exe
22=***u.com/wm/22.exe
23=***u.com/wm/23.exe
24=***u.com/wm/24.exe
25=***u.com/wm/25.exe
26=***u.com/wm/26.exe
27=***u.com/wm/27.exe
28=***u.com/wm/28.exe
与auto木马群勾结,写入盗号木马:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
mhuslmqiC:\WINDOWS\hsmijpow.exe
C:\WINDOWS\AVPSrv.exE
C:\WINDOWS\upxdnd.exe
Kvsc3C:\WINDOWS\Kvsc3.exE
DbgHlp32C:\WINDOWS\DbgHlp32.exe
SHAProcC:\WINDOWS\SHAProc.exe等
加载rootkits驱动进行自我保护:
[iCafe Manager / iCafe Manager][Stopped/Manual Start]
\??\C:\DOCUME~1\papa\LOCALS~1\Temp\usbhcid.sys
[Sc Manager / Sc Manager][Running/Manual Start]
\??\C:\DOCUME~1\papa\LOCALS~1\Temp\usbcams3.sys
[dohs / dohs][Stopped/Auto Start]
\??\C:\DOCUME~1\papa\LOCALS~1\Temp\tmp3.tmp
[fpids32 / fpids32][Running/Auto Start]
\??\C:\WINDOWS\system32\drivers\msosfpids32.sys
[msertk / msertk][Running/Auto Start]
system32\drivers\msyecp.sys
[msert / msert][Running/Auto Start]
system32\drivers\mselk.sys
写入ntsd劫持与破坏安全模式,导致杀软失效,如图所示:
病毒的处理方法:
该病毒融合了目前多种流行病毒木马技术,破坏杀毒程序导致普通用户很难进行清理操作。建议对该病毒以注意日常防范为主,保持毒霸病毒库更新以及良好健康的上网习惯。
对于已经感染病毒的用户可以尝试在正常模式运行使用附件中的脚本Del_AtiSrv.bat后重启进入安全模式。
进入安全模式后运行附件中的Clean_IFEO.bat清除映像劫持
注:Del_AtiSrv.ba和Clean_IFEO.bat的下载地址:
然后运行金山清理专家清理恶意软件即可。如图所示:
参考资料:金山毒霸克服专区;type=infoid=139160
SDP的内容解析与 实例分析
零、背景
实时传输前,双方为了建立实时数据传输的通道, (1)交换各自的IP地址和端口号(通常是UDP,实时性更好),(2)交换各自在的数据传输时的加解密方式,(3)交换各自在传输时报文的格式标准。从而保障了数据交互。对应的,在sdp格式报文中,会把上述内容携带上,通信双方可能通过websocket或者其他的方式进行互换sdp。(用websocket很大原因是因为网页端需要接入,同时也方便好用,坑也多)
一、SDP协议介绍
SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、 实时流协议(RTSP)、 MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。媒体协商这一块要用 RTSP 来实现.
二、SDP协议格式
SDP描述由许多文本行组成,文本行的格式为类型=值,类型是一个字母,值是结构化的文本串,其格式依类型而定。
<type>=value[CRLF]
主要是 video、audio的动态pt范围, 和每一种codec的preferredPT,用在两个端之间协商统一
主要是rtcp控制报文(nack,pli,remb,fir等)在两端的识别,事先统一好每一种控制报文的PT
Udp传输时,会在udp的套接字上包装一层ssl, 会需要两端交换对称加密方式
NA
核心内容,对端的UDP,ip地址和 端口
在一次会话中唯一标准一个媒体流
audio-ssrc
video-ssrc
Codecs:
0: {kind: "audio", mimeType: "audio/opus", clockRate: 48000, channels: 2, preferredPayloadType: 100,…}
1: {kind: "video", mimeType: "video/VP8", clockRate: 90000,…}
2: {kind: "video", mimeType: "video/rtx", preferredPayloadType: 102, clockRate: 90000, rtcpFeedback: [],…}
3: {kind: "video", mimeType: "video/VP9", clockRate: 90000,…}
a=rtpmap:103 ISAC/16000\r\n
a=rtpmap:104 ISAC/32000\r\n
a=rtpmap:9 G722/8000\r\n
a=rtpmap:0 PCMU/8000\r\n
a=rtpmap:8 PCMA/8000\r\n
a=rtpmap:113 telephone-event/16000\r\n
a=rtpmap:126 telephone-event/8000\r\n
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116\r\n
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\n
fecMechanisms: 不使用fec 可以不需要
headExtensions:
audio ExtMap
video ExtMap
定义 nack,fir pliremb 的pt
preferredPayloadType: 100
rtcpFeedback: []
a=sendonly\r\n
a=rtcp-mux\r\n
a=rtcp-rsize\r\n
a=rtpmap:96 VP8/90000\r\n
a=rtcp-fb:96 goog-remb\r\n
a=rtcp-fb:96 transport-cc\r\n
a=rtcp-fb:96 ccm fir\r\n
a=rtcp-fb:96 nack\r\n
a=rtcp-fb:96 nack pli\r\n
a=rtpmap:97 rtx/90000\r\n
a=fmtp:97 apt=96\r\n
a=rtpmap:98 VP9/90000\r\n
a=rtcp-fb:98 goog-remb\r\n
a=rtcp-fb:98 transport-cc\r\n
a=rtcp-fb:98 ccm fir\r\n
a=rtcp-fb:98 nack\r\n
a=rtcp-fb:98 nack pli\r\n
fingerprints: [{algorithm: "sha-1", value: "DB:E8:DB:EB:A6:85:7B:2A:10:10:3B:A0:7E:1E:0C:CA:64:CB:36:95"},…]
role: "auto"
iceLite: true
password: "y9fs202dur4fzvm8rek5n1befw5wogzp"
usernameFragment: "5synhr1w1yjyuudn"
a=ice-ufrag:Ksf1\r\n
a=ice-pwd:GDop22TqcfiuREGVcDlNh8Cv\r\n
a=ice-options:trickle\r\n
a=fingerprint:sha-256 F8:91:E5:A6:77:09:7A:AB:AE:94:87:95:09:53:7D:78:10:20:21:4E:10:78:E6:76:DE:FD:4E:D5:4D:FD:7D:D9\r\n
a=setup:actpass\r\n
{foundation: "udpcandidate", ip: "172.28.100.38", port: 42795, priority: 1076302079, protocol: "udp",…}
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\n
...
a=ssrc:1913322051 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:1913322051 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 1faaeb69-cb20-4c41-9a83-5b9316458dd7\r\n
a=ssrc:1913322051 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:1913322051 label:1faaeb69-cb20-4c41-9a83-5b9316458dd7\r\n
——————
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116\r\n
...
a=ssrc-group:FID 4051905094 3634016184\r\n
a=ssrc:4051905094 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:4051905094 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:4051905094 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:4051905094 label:d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:3634016184 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:3634016184 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:3634016184 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:3634016184 label:d3674fe2-2344-43fe-aa19-832fb0425310\r\n
可以参考这个:
给个例子:offer 和 answer的 sdp
offer sdp:
———————————————————————————————————
offer sdp 来源 :
pc=newRTCPeerConnection
pc.createOffer(this.offerConstraint).then(sdp={
let_sdp=JSON.parse(JSON.stringify(sdp));
pc.setLocalDescription(_sdp).then(_={
y(_sdp);
}).catch(this.onerror)
}).catch(this.onerror)
v=0\r\n
o=- 2243792401850741077 2 IN IP4 127.0.0.1\r\n
s=-\r\n
t=0 0\r\n
a=group:BUNDLE audio video\r\n
a=msid-semantic: WMS 1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\n
c=IN IP4 0.0.0.0\r\n
a=rtcp:9 IN IP4 0.0.0.0\r\n
a=ice-ufrag:Ksf1\r\n
a=ice-pwd:GDop22TqcfiuREGVcDlNh8Cv\r\n
a=ice-options:trickle\r\n
a=fingerprint:sha-256 F8:91:E5:A6:77:09:7A:AB:AE:94:87:95:09:53:7D:78:10:20:21:4E:10:78:E6:76:DE:FD:4E:D5:4D:FD:7D:D9\r\n
a=setup:actpass\r\n
a=mid:audio\r\n
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n
a=extmap:2 \r\n
a=sendonly\r\n
a=rtcp-mux\r\n
a=rtpmap:111 opus/48000/2\r\n
a=rtcp-fb:111 nack\r\n
a=rtcp-fb:111 transport-cc\r\n
a=fmtp:111 minptime=10;useinbandfec=1\r\n
a=rtpmap:103 ISAC/16000\r\n
a=rtpmap:104 ISAC/32000\r\n
a=rtpmap:9 G722/8000\r\n
a=rtpmap:0 PCMU/8000\r\n
a=rtpmap:8 PCMA/8000\r\n
a=rtpmap:106 CN/32000\r\n
a=rtpmap:105 CN/16000\r\n
a=rtpmap:13 CN/8000\r\n
a=rtpmap:110 telephone-event/48000\r\n
a=rtpmap:112 telephone-event/32000\r\n
a=rtpmap:113 telephone-event/16000\r\n
a=rtpmap:126 telephone-event/8000\r\n
a=ssrc:1913322051 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:1913322051 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 1faaeb69-cb20-4c41-9a83-5b9316458dd7\r\n
a=ssrc:1913322051 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:1913322051 label:1faaeb69-cb20-4c41-9a83-5b9316458dd7\r\n
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116\r\n
c=IN IP4 0.0.0.0\r\n
a=rtcp:9 IN IP4 0.0.0.0\r\n
a=ice-ufrag:Ksf1\r\n
a=ice-pwd:GDop22TqcfiuREGVcDlNh8Cv\r\n
a=ice-options:trickle\r\n
a=fingerprint:sha-256 F8:91:E5:A6:77:09:7A:AB:AE:94:87:95:09:53:7D:78:10:20:21:4E:10:78:E6:76:DE:FD:4E:D5:4D:FD:7D:D9\r\n
a=setup:actpass\r\n
a=mid:video\r\n
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n
a=extmap:13 \r\n
a=extmap:3 urn:3gpp:video-orientation\r\n
a=extmap:2 \r\n
a=extmap:5 \r\n
a=extmap:6 \r\n
a=extmap:7 \r\n
a=extmap:8 \r\n
a=extmap:9 \r\n
a=sendonly\r\n
a=rtcp-mux\r\n
a=rtcp-rsize\r\n
a=rtpmap:96 VP8/90000\r\n
a=rtcp-fb:96 goog-remb\r\n
a=rtcp-fb:96 transport-cc\r\n
a=rtcp-fb:96 ccm fir\r\n
a=rtcp-fb:96 nack\r\n
a=rtcp-fb:96 nack pli\r\n
a=rtpmap:97 rtx/90000\r\n
a=fmtp:97 apt=96\r\n
a=rtpmap:98 VP9/90000\r\n
a=rtcp-fb:98 goog-remb\r\n
a=rtcp-fb:98 transport-cc\r\n
a=rtcp-fb:98 ccm fir\r\n
a=rtcp-fb:98 nack\r\n
a=rtcp-fb:98 nack pli\r\n
a=fmtp:98 profile-id=0\r\n
a=rtpmap:99 rtx/90000\r\n
a=fmtp:99 apt=98\r\n
a=rtpmap:100 VP9/90000\r\n
a=rtcp-fb:100 goog-remb\r\n
a=rtcp-fb:100 transport-cc\r\n
a=rtcp-fb:100 ccm fir\r\n
a=rtcp-fb:100 nack\r\n
a=rtcp-fb:100 nack pli\r\n
a=fmtp:100 profile-id=2\r\n
a=rtpmap:101 rtx/90000\r\n
a=fmtp:101 apt=100\r\n
a=rtpmap:102 H264/90000\r\n
a=rtcp-fb:102 goog-remb\r\n
a=rtcp-fb:102 transport-cc\r\n
a=rtcp-fb:102 ccm fir\r\n
a=rtcp-fb:102 nack\r\n
a=rtcp-fb:102 nack pli\r\n
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\n
a=rtpmap:122 rtx/90000\r\n
a=fmtp:122 apt=102\r\n
a=rtpmap:127 H264/90000\r\n
a=rtcp-fb:127 goog-remb\r\n
a=rtcp-fb:127 transport-cc\r\n
a=rtcp-fb:127 ccm fir\r\n
a=rtcp-fb:127 nack\r\n
a=rtcp-fb:127 nack pli\r\n
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\n
a=rtpmap:121 rtx/90000\r\n
a=fmtp:121 apt=127\r\n
a=rtpmap:125 H264/90000\r\n
a=rtcp-fb:125 goog-remb\r\n
a=rtcp-fb:125 transport-cc\r\n
a=rtcp-fb:125 ccm fir\r\n
a=rtcp-fb:125 nack\r\n
a=rtcp-fb:125 nack pli\r\n
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n
a=rtpmap:107 rtx/90000\r\n
a=fmtp:107 apt=125\r\n
a=rtpmap:108 H264/90000\r\n
a=rtcp-fb:108 goog-remb\r\n
a=rtcp-fb:108 transport-cc\r\n
a=rtcp-fb:108 ccm fir\r\n
a=rtcp-fb:108 nack\r\n
a=rtcp-fb:108 nack pli\r\n
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\n
a=rtpmap:109 rtx/90000\r\n
a=fmtp:109 apt=108\r\n
a=rtpmap:124 H264/90000\r\n
a=rtcp-fb:124 goog-remb\r\n
a=rtcp-fb:124 transport-cc\r\n
a=rtcp-fb:124 ccm fir\r\n
a=rtcp-fb:124 nack\r\n
a=rtcp-fb:124 nack pli\r\n
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032\r\n
a=rtpmap:120 rtx/90000\r\n
a=fmtp:120 apt=124\r\n
a=rtpmap:123 H264/90000\r\n
a=rtcp-fb:123 goog-remb\r\n
a=rtcp-fb:123 transport-cc\r\n
a=rtcp-fb:123 ccm fir\r\n
a=rtcp-fb:123 nack\r\n
a=rtcp-fb:123 nack pli\r\n
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032\r\n
a=rtpmap:119 rtx/90000\r\n
a=fmtp:119 apt=123\r\n
a=rtpmap:114 red/90000\r\n
a=rtpmap:115 rtx/90000\r\n
a=fmtp:115 apt=114\r\n
a=rtpmap:116 ulpfec/90000\r\n
a=ssrc-group:FID 4051905094 3634016184\r\n
a=ssrc:4051905094 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:4051905094 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:4051905094 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:4051905094 label:d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:3634016184 cname:buToKXw9QTcWQHBF\r\n
a=ssrc:3634016184 msid:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3 d3674fe2-2344-43fe-aa19-832fb0425310\r\n
a=ssrc:3634016184 mslabel:1jMfa2Vph7cdloTWnLDiIBh7MVKIesEwpOC3\r\n
a=ssrc:3634016184 label:d3674fe2-2344-43fe-aa19-832fb0425310\r\n
answer sdp
v=0\r\n
o=- 0 0 IN IP4 127.0.0.1\r\n
s=MY-PROTOL\r\n
t=0 0\r\n
a=msid-semantic: WMS *\r\n
a=group:BUNDLE audio video\r\n
m=audio 9 UDP/TLS/RTP/SAVPF 111\r\n
c=IN IP4 0.0.0.0\r\n
a=rtpmap:111 opus/48000/2\r\n
a=fmtp:111 minptime=10;useinbandfec=1\r\n
a=rtcp:1 IN IP4 0.0.0.0\r\n
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n
a=setup:active\r\n
a=mid:audio\r\n
a=recvonly\r\n
a=ice-ufrag:qctxy\r\n
a=ice-pwd:a123456789b123456789cd\r\n
a=fingerprint:sha-256 A5:5F:18:86:E7:32:5E:11:44:A7:B4:11:E1:18:6C:EE:8B:F6:6D:D6:CA:C7:D2:DF:AC:29:FC:95:09:71:AA:3C\r\n
a=candidate:xxxxxx 1 udp xxxxx x 44572 typ host generation 0\r\n
a=end-of-candidates\r\n
a=rtcp-mux\r\n
m=video 9 UDP/TLS/RTP/SAVPF 101\r\n
c=IN IP4 0.0.0.0\r\n
a=rtpmap:101 H264/90000\r\n
a=fmtp:101 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n
a=rtcp:1 IN IP4 0.0.0.0\r\n
a=rtcp-fb:101 ccm fir\r\n
a=rtcp-fb:101 nack\r\n
a=rtcp-fb:101 nack pli\r\n
a=rtcp-fb:101 goog-remb\r\n
a=extmap:3 urn:3gpp:video-orientation\r\n
a=extmap:5 \r\n
a=extmap:13 \r\n
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n
a=setup:active\r\n
a=mid:video\r\n
a=recvonly\r\n
a=ice-ufrag:qctxy\r\n
a=ice-pwd:a123456789b123456789cd\r\n
a=fingerprint:sha-256 A5:5F:18:86:E7:32:5E:11:44:A7:B4:11:E1:18:6C:EE:8B:F6:6D:D6:CA:C7:D2:DF:AC:29:FC:95:09:71:AA:3C\r\n
a=candidate:xxxxxxx 1 udp xxxxxxx x 44572 typ host generation 0\r\n
a=end-of-candidates\r\n
a=rtcp-mux\r\n
联轴器,r55.65/50-98sha什么意思
这是星型联轴器应是GR55型号,65和50的轴孔,98SHA是中间链接的弹性垫的材质型号,郑州法思特做的有这种
如何在 Windows 下编译 OpenSSL
在Windows下编译OpenSSL (VS2010使用VC10的cl编译器)
1、安装ActivePerl//初始化的时候,需要用到perl解释器
2、使用VS2010下的Visual Studio 2010 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
3、解压缩openssl的包,进入openssl的目录
4、perl configure VC-WIN32
尽量在这个目录下执行该命令,否则找不到Configure文件,或者指定完整的Configure文件路径。
5、ms\do_ms.bat
在解压目录下执行ms\do_ms.bat命令
6、nmake -f ms\ntdll.mak
7、nmake -f ms\nt.mak
编译后
在openssl解压目录下执行,完成编译后。输出的文件在out32dll (6), out32 (7)里面,包括应用程序的可执行文件、lib文件和dll文件
注意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。
于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的/WX选项去掉,存盘。。。
继续执行nmake -f ms\ntdll.mak
=================================
一、编译并安装OpenSSL
1、按照标准步骤从源代码编译安装OpenSSL
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
下载最新版本的Perl然后安装之。
下载最新版本的OpenSSL
然后将源码解压缩到某个目录(如 C:\openssl-0.9.8j)中。
进入openssl源码目录。
cd c:\openssl-1.0.1e
以下为参照该目录下的文件INSTALL.W32的执行过程:
运行configure:
perl Configure VC-WIN32
创建Makefile文件:
ms\do_ms.bat
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
2、如果嫌麻烦,不想编译,可以直接用别人做好的windows OpenSSL 安装包(我用的是0.9.8j版),
可以下载 OpenSSL for Windows,直接安装。
P.S. OpenSSL for Windows 的源代码有一些数据类型和VC6的编译器不兼容,我发现的不兼容的数据类型如下:
在OpenSSL安装目录的下的include/bn.h文件中,将
#define BN_ULLONG unsigned long long
#define BN_ULONG unsigned long long
#define BN_LONG long long
分别修改为:
#define BN_ULLONG ULONGLONG
#define BN_ULONG ULONGLONG
#define BN_LONG LONGLONG
否则,会出现编译错误。
二、使用OpenSSL
在VC中配置使用以上的函数库:
点击菜单:Tools - Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
在"Show directories for:"的"Include files"选项中新增目录"C:\openssl\include";
"Library files"选择中新增目录"C:\openssl\lib"。
然后在需要链接OpenSSL函数库的工程中加入如下两句:
#pragma comment(lib, "ssleay32.lib")
#pragma comment(lib, "libeay32.lib")
其作用是将OpenSSL所需的库导入工程中。
三、问题
我在链接OpenSSL的静态函数库时遇到类似以下的问题:
Linking...
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strchr already defined in libcmtd.lib(strchr.obj)
...
这是由于OpenSSL的静态函数库使用的是了VC的多线程DLL的Release版本,而我的程序使用了多线程静态链接的Release版本。
调整OpenSSL的静态函数库使用的库函数版本即可,调整过程如下:
编辑文件 ms\nt.mak,将该文件第19行
"CFLAG= /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -
D_CRT_NONSTDC_NO_DEPRECATE /Fdout32 -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_TLSEXT -DOPENSSL_NO_KRB5 -
DOPENSSL_NO_DYNAMIC_ENGINE"
中的"/MD"修改为"/MT"。然后重新编译安装OpenSSL即可。
四、附录:在VC中对C/C++ 运行时库不同版本编译指令说明
《在VC中对C/C++ 运行时库不同版本编译指令说明》一文中详细介绍了连接不同版本库的编译指令如下:
C Runtime Library:
/MD MSVCRT.LIB 多线程DLL的Release版本
/MDd MSVCRTD.LIB 多线程DLL的Debug版本
/MT LIBCMT.LIB 多线程静态链接的Release版本
/MTd LIBCMTD.LIB 多线程静态链接的Debug版本
/clr MSVCMRT.LIB 托管代码和非托管代码混合
/clr:pure MSVCURT.LIB 纯托管代码
C++ Standard Library:
/MD MSVCPRT.LIB 多线程DLL的Release版本
/MDd MSVCPRTD.LIB 多线程DLL的Debug版本
/MT LIBCPMT.LIB 多线程静态链接的Release版本
/MTd LIBCPMTD.LIB 多线程静态链接的Debug版本
===============================================
一 配置编译参数
配置编译参数是进行OpenSSL编译的第一步,这一步可以确定系统的环境,使用什么编译器,默认安装路径以及其他一些选项.步骤如下:
1.安装perl:下载ActivePerl-5.8.8.822-MSWin32-x86-280952.msi,然后点击msi文件进行安装!
2..配置编译参数:下载openssl-1.0.1e.tar.gz,解压.
vc:首先在C:\Program Files\Microsoft Visual Studio .NET 2010\VC10\bin\目录下执行vcvars32.bat,然后在解压后的openssl-1.0.1e目录,执行命令配置编译参数:perl Configure VC-WIN32
bc:在解压后的openssl-0.9.8g目录下执行:perl Configure BC-32
二 生成批处理文件
在使用configure脚本配置好的编译参数后,就可以使用批处理命令来生成编译脚本.生成编译脚本根据采用编译器的不同通常使用不同的批处理文件.就目前来说,使用vc编译的时候有三种选择:do_ms,do_masm和do_nasm来创建一系列编译脚本文件,即.mak脚本.步骤如下:
vc:在openssl-1.0.1e目录下,执行命令来批处理文件:do_ms,do_masm和do_nasm
bc:1.下载nsm09839.zip微软汇编编译器,解压,拷贝到c:/windows目录下,修改名称为nasmw.exe;2.在openssl-1.0.1e目录下,执行命令来批处理文件:ms\do_nasm
三 代码编译
vc:
完成上面步骤后,可以看到两个关键脚本文件:nt.mak和ntdll.mak.如果我们需要编译后的OpenSSL库是支持动态DLL形式的,那么应该使用ntddll.mak文件进行编译,这样编译完成我们会得到四个与OpenSSL的API库有关文件:ssleay32.lib,libeay32.lib,ssleay32.dll和libeay32.dll.执行的编译命令形式如下:nmake -f ms\ntdll.mak
如果不希望以动态库的形式使用OpenSSL,那么可以使用nt.mak文件进行编译.这样编译后使用OpenSSL的时候,回直接将代码链接进我们的程序里面.执行命令如下:nmake -f ms\nt.mak
bc:执行命令来完成代码编译:make -f ms\bcb.mak
四 ELSE
1)测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
2)使用OpenSSL
在VC中配置使用以上的函数库:
点击菜单:Tools - Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
在"Show directories for:"的"Include files"选项中新增目录"C:\openssl\include";"Library files"选择中新增目录"C:\openssl\lib"。
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。

扫码添加客服微信