﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-唯C主义-随笔分类-软件安全</title><link>http://www.cppblog.com/netboy/category/9580.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 29 May 2011 10:22:23 GMT</lastBuildDate><pubDate>Sun, 29 May 2011 10:22:23 GMT</pubDate><ttl>60</ttl><item><title>Msn Messenger 7.0 DIY</title><link>http://www.cppblog.com/netboy/archive/2009/02/15/73856.html</link><dc:creator>王勇良</dc:creator><author>王勇良</author><pubDate>Sun, 15 Feb 2009 04:48:00 GMT</pubDate><guid>http://www.cppblog.com/netboy/archive/2009/02/15/73856.html</guid><wfw:comment>http://www.cppblog.com/netboy/comments/73856.html</wfw:comment><comments>http://www.cppblog.com/netboy/archive/2009/02/15/73856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/netboy/comments/commentRss/73856.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/netboy/services/trackbacks/73856.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=" utf-8="" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<!--[if gte mso 9]><xml>
<w:worddocument>
<w:view>Normal</w:view>
<w:zoom>0</w:zoom>
<w:punctuationkerning/>
<w:drawinggridverticalspacing>7.8 磅</w:drawinggridverticalspacing>
<w:displayhorizontaldrawinggridevery>0</w:displayhorizontaldrawinggridevery>
<w:displayverticaldrawinggridevery>2</w:displayverticaldrawinggridevery>
<w:validateagainstschemas/>
<w:saveifxmlinvalid>false</w:saveifxmlinvalid>
<w:ignoremixedcontent>false</w:ignoremixedcontent>
<w:alwaysshowplaceholdertext>false</w:alwaysshowplaceholdertext>
<w:compatibility>
<w:spaceforul/>
<w:balancesinglebytedoublebytewidth/>
<w:donotleavebackslashalone/>
<w:ultrailspace/>
<w:donotexpandshiftreturn/>
<w:adjustlineheightintable/>
<w:breakwrappedtables/>
<w:snaptogridincell/>
<w:wraptextwithpunct/>
<w:useasianbreakrules/>
<w:dontgrowautofit/>
<w:usefelayout/>
</w:compatibility>
<w:browserlevel>MicrosoftInternetExplorer4</w:browserlevel>
</w:worddocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:latentstyles deflockedstate="false" latentstylecount="156">
</w:latentstyles>
</xml><![endif]-->
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:42.55pt;
mso-footer-margin:49.6pt;
mso-paper-source:0;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
<!--[if gte mso 10]>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
<![endif]-->
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">工具：<span lang="EN-US">MSVC6.0 UltraEdit<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">一、去除左侧标签栏<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">查找文本<span lang="EN-US"> tabmanager<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将下面一段中的<span lang="EN-US"> left </span>改为<span lang="EN-US"> none<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">&lt;element layoutpos=left layout=filllayout()&gt;<br />
&lt;element layout=borderlayout()&gt;<br />
&lt;png layoutpos=right class="ChromeLeftBorder"/&gt;<br />
&lt;/element&gt;<br />
&lt;msbltabs id=atom(tabmanager) padding=ifhc(rect(0,0,0,6), rect
(0,0,0,6))&gt;<br />
&lt;/msbltabs&gt;<br />
&lt;/element&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">二、启动多帐号<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">查找内容<span lang="EN-US">"</span>填<span lang="EN-US">:<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">3D B7 00 00 00 0F 85 B5 01 00 00<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在<span lang="EN-US">"</span>替换为<span lang="EN-US">"</span>填<span lang="EN-US">:<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">3D B7 00 00 00 90 E9 B5 01 00 00<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">点击<span lang="EN-US">"</span>替换<span lang="EN-US">",</span>然后保存即可<span lang="EN-US">.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">三、去除标题栏的<span lang="EN-US">BETA</span>字样<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Ctrl+R, </span><span style="font-size: 12pt; font-family: 宋体;">在<span lang="EN-US">"</span>查找内容<span lang="EN-US">"</span>填<span lang="EN-US">:<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">28 00 42 00 45 00 54 00 41 00 29 00 00 00 5F<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在<span lang="EN-US">"</span>替换为<span lang="EN-US">"</span>填<span lang="EN-US">:<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">00 00 00 00 00 00 00 00 00 00 00 00 00 00 00<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">点击<span lang="EN-US">"</span>替换<span lang="EN-US">",</span>然后保存即可<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">四、字体变形解决方法：<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element<br />
{<br />
fontface: sysmetricstr(6);<br />
fontsize: sysmetric(-16);<br />
} <br />
</span><span style="font-size: 12pt; font-family: 宋体;">这段代码改成<span lang="EN-US">:<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element<br />
{<br />
fontface: sysmetricstr(6);<br />
fontsize: 9pt;<br />
} <br />
</span><span style="font-size: 12pt; font-family: 宋体;">编译，保存。记得修改前备份。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">五、去广告<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element layoutpos=top layout=verticalflowlayout(0,2,2,2)
padding=rect(2,5,3,2)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">修改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element layoutpos=none layout=verticalflowlayout(0,2,2,2)
padding=rect(2,5,3,2)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">编译脚本<span lang="EN-US">,</span>保存<span lang="EN-US">.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">六、去掉搜索栏<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">搜索<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element[id=atom(idSearchContainer)]<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element[id=atom(idSearchContainer)]<br />
{<br />
layoutpos:bottom;<br />
} <o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element[id=atom(idSearchContainer)]<br />
{<br />
layoutpos:none;<br />
} <o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">七、去掉添加联系人<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">搜索 <span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton[id=atom(idAddContact)] <o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton[id=atom(idAddContact)]<br />
{<br />
Foreground:ifhc(menutext,ifhc(hotlight,blue));<br />
layoutpos:bottom;<br />
} <o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton[id=atom(idAddContact)]<br />
{<br />
Foreground:ifhc(menutext,ifhc(hotlight,blue));<br />
layoutpos:none;<br />
} <o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">八、去掉<span lang="EN-US">msn</span>今日<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">搜索<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40233 id=atom(msntodaybtn)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40233 id=atom(msntodaybtn)
class="ToolbarBtn" layout=flowlayout(0,2,0,2) AccName=rcstr(4231)
AccRole=57 AccDesc=rcstr(4230) ShortcutString=rcstr(4229)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40233 class="ToolbarBtn"
layoutpos=none AccName=rcstr(4231) AccRole=57 AccDesc=rcstr(4230)
ShortcutString=rcstr(4229)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">九、去掉我的共享空间<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">搜索<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40421 id=atom(spacebtn)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40421 id=atom(spacebtn)
class="ToolbarBtn" layout=flowlayout(0,2,0,2) AccName=rcstr(4257)
AccRole=57 AccDesc=rcstr(61769) ShortcutString=rcstr(4256)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">cmdbutton cmdid=40421 class="ToolbarBtn"
layoutpos=none AccName=rcstr(4257) AccRole=57 AccDesc=rcstr(61769)
ShortcutString=rcstr(4256)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br />
</span><span style="font-size: 12pt; font-family: 宋体;">可以去掉全部的按钮<span lang="EN-US"><br />
element id=atom(idMeAreaButtons)<br />
</span>加上<span lang="EN-US">layoutpos=none.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">十、去掉聊天窗口下放的文字广告<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">搜索<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element id=atom(adbannercont)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">将<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element id=atom(adbannercont) layout=filllayout()
layoutpos=bottom<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">改为<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">element layoutpos=none<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">最后<span lang="EN-US">,</span>修改以后不要忘记保存<span lang="EN-US">.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p><img src ="http://www.cppblog.com/netboy/aggbug/73856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/netboy/" target="_blank">王勇良</a> 2009-02-15 12:48 <a href="http://www.cppblog.com/netboy/archive/2009/02/15/73856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>进程注入（转）</title><link>http://www.cppblog.com/netboy/archive/2009/02/15/73841.html</link><dc:creator>王勇良</dc:creator><author>王勇良</author><pubDate>Sun, 15 Feb 2009 02:15:00 GMT</pubDate><guid>http://www.cppblog.com/netboy/archive/2009/02/15/73841.html</guid><wfw:comment>http://www.cppblog.com/netboy/comments/73841.html</wfw:comment><comments>http://www.cppblog.com/netboy/archive/2009/02/15/73841.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/netboy/comments/commentRss/73841.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/netboy/services/trackbacks/73841.html</trackback:ping><description><![CDATA[<p>今天要完成一个项内容，运行另一个应用程序abc.exe，实现它的父进程是explorer.exe。</p>
<p>最开始的思路是获得explorer.exe的句柄，用ShellExecute启动abc.exe。但是用explorer.exe的句柄创建的进程的父进程依然是调用和进程，而不是传入句柄的进程。</p>
<p>看来直接的不行，只能用间接的了。把运行abc.exe的代码段写到explorer.exe的内存里面去。然后让explorer来运行这段代码。</p>
<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: #e6e6e6 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;">
<div><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_52_111_Open_Image" style="display: inline;" onclick="this.style.display='none'; document.getelementbyid('_52_111_open_text').style.display="'none';" document.getelementbyid('_52_111_closed_image').style.display="'inline';" document.getelementbyid('_52_111_closed_text').style.display="'inline';"" alt="" align="top"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_52_111_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getelementbyid('_52_111_closed_text').style.display="'none';" document.getelementbyid('_52_111_open_image').style.display="'inline';" document.getelementbyid('_52_111_open_text').style.display="'inline';"" alt="" align="top"><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;DWORD&nbsp;CALLBACK&nbsp;ThreadProc()</span><span id="_52_111_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;">...</span><span id="_52_111_Open_Text" style="display: inline;"><span style="color: #000000;">{<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;::ShellExecute(NULL,"open","abc.exe",NULL,NULL,SW_SHOW);</span></span></div>
<div><span><span style="color: #000000;"></span><span style="color: #000000;"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;TRUE;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top">}</span></span></div>
</div>
<p>但是现在就出现问题了，ShellExecute在shell32模块里，还需要LoadLibrary和GetProcAddress。同时它也
用了两个字符串常量，这些字串会出现在本进程的内存中，在explorer中运行代码就会出错，系统把它关掉。所以改用了WinExec来代替
ShellExecute，同时要把需要的字串和函数指针都写到explorer的内存区里。</p>
<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: #e6e6e6 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;">
<div><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"><span style="color: #000000;">typedef&nbsp;UINT&nbsp;(WINAPI&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;WINEXEC)(LPCSTR,UINT);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_75_121_Open_Image" onclick="this.style.display='none'; document.getelementbyid('_75_121_open_text').style.display="'none';" document.getelementbyid('_75_121_closed_image').style.display="'inline';" document.getelementbyid('_75_121_closed_text').style.display="'inline';"" alt="" align="top"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_75_121_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getelementbyid('_75_121_closed_text').style.display="'none';" document.getelementbyid('_75_121_open_image').style.display="'inline';" document.getelementbyid('_75_121_open_text').style.display="'inline';"" alt="" align="top">typedef&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;tagTHREADDATA</span><span id="_75_121_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;">...</span><span id="_75_121_Open_Text"><span style="color: #000000;">{<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;TCHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileName[</span><span style="color: #000000;">20</span><span style="color: #000000;">];<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;WINEXEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pWinexec;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top">}</span></span><span style="color: #000000;">THREADDATA,&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">LPTHREADDATA;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_202_261_Open_Image" onclick="this.style.display='none'; document.getelementbyid('_202_261_open_text').style.display="'none';" document.getelementbyid('_202_261_closed_image').style.display="'inline';" document.getelementbyid('_202_261_closed_text').style.display="'inline';"" alt="" align="top"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_202_261_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getelementbyid('_202_261_closed_text').style.display="'none';" document.getelementbyid('_202_261_open_image').style.display="'inline';" document.getelementbyid('_202_261_open_text').style.display="'inline';"" alt="" align="top"></span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;DWORD&nbsp;CALLBACK&nbsp;ThreadProc(LPTHREADDATA&nbsp;pData)</span><span id="_202_261_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;">...</span><span id="_202_261_Open_Text"><span style="color: #000000;">{<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;pData</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">pWinexec(pData</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">fileName,SW_SHOW);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;TRUE;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top">}</span></span></div>
</div>
获得explorer进程PID的方法
<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: #e6e6e6 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;">
<div><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_22_295_Open_Image" onclick="this.style.display='none'; document.getelementbyid('_22_295_open_text').style.display="'none';" document.getelementbyid('_22_295_closed_image').style.display="'inline';" document.getelementbyid('_22_295_closed_text').style.display="'inline';"" alt="" align="top"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_22_295_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getelementbyid('_22_295_closed_text').style.display="'none';" document.getelementbyid('_22_295_open_image').style.display="'inline';" document.getelementbyid('_22_295_open_text').style.display="'inline';"" alt="" align="top"><span style="color: #000000;">DWORD&nbsp;getExplorerPID()</span><span id="_22_295_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;">...</span><span id="_22_295_Open_Text"><span style="color: #000000;">{<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;startButtonHandle;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;processID;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;startButtonHandle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;::FindWindow&nbsp;(TEXT(</span><span style="color: #000000;">"</span><span style="color: #000000;">Shell_TrayWnd</span><span style="color: #000000;">"</span><span style="color: #000000;">),NULL);<br></span><span style="color: #000000;"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;::GetWindowThreadProcessId(&nbsp;startButtonHandle,&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">processID&nbsp;);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;processID;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top">}</span></span></div>
</div>
<p>注入内存的过程：</p>
<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: #e6e6e6 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;">
<div><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"><span style="color: #000000;">user32Handle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;::GetModuleHandle(TEXT(</span><span style="color: #000000;">"</span><span style="color: #000000;">kernel32</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">得到kernel32模块句柄</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">processHandle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;::OpenProcess(PROCESS_CREATE_THREAD&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;PROCESS_QUERY_INFORMATION&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;PROCESS_VM_OPERATION&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;PROCESS_VM_WRITE&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;PROCESS_VM_READ,FALSE,getExplorerPID());<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">用explorer的PID来打开进程，并得到创建线程和写的权限。</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">dataAddr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;::VirtualAllocEx(processHandle,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(THREADDATA),MEM_COMMIT,PAGE_EXECUTE_READWRITE);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">在explorer的内存内里申请一块内存来存所用的数据</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_416_479_Open_Image" onclick="this.style.display='none'; document.getelementbyid('_416_479_open_text').style.display="'none';" document.getelementbyid('_416_479_closed_image').style.display="'inline';" document.getelementbyid('_416_479_closed_text').style.display="'inline';"" alt="" align="top"><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_416_479_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getelementbyid('_416_479_closed_text').style.display="'none';" document.getelementbyid('_416_479_open_image').style.display="'inline';" document.getelementbyid('_416_479_open_text').style.display="'inline';"" alt="" align="top"></span><span style="color: #000000;">THREADDATA&nbsp;data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span id="_416_479_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;">...</span><span id="_416_479_Open_Text"><span style="color: #000000;">{TEXT(</span><span style="color: #000000;">"</span><span style="color: #000000;">a.exe</span><span style="color: #000000;">"</span><span style="color: #000000;">),(WINEXEC)GetProcAddress(user32Handle,</span><span style="color: #000000;">"</span><span style="color: #000000;">WinExec</span><span style="color: #000000;">"</span><span style="color: #000000;">),}</span></span><span style="color: #000000;">;<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top">WriteProcessMemory(processHandle,dataAddr,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">data,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(THREADDATA),</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">byteWrited);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">把数据写到申请的内存中</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">codeAddr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;::VirtualAllocEx(processHandle,</span><span style="color: #000000;">0</span><span style="color: #000000;">,sizeOfThreadProc,MEM_COMMIT,PAGE_EXECUTE_READWRITE);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">申请代码的内存区</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">WriteProcessMemory(processHandle,codeAddr,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">ThreadProc,sizeOfThreadProc,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">byteWrited);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">把代码写进去，这时我们己经把我们要用的代码和数据都准备好了。</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">threadHandle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;CreateRemoteThread(processHandle,NULL,</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;LPTHREAD_START_ROUTINE)codeAddr,dataAddr,</span><span style="color: #000000;">0</span><span style="color: #000000;">,(LPDWORD)threadID);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">在explorer中创建一个线程，来执行启动abc.exe的代码。所需的数据都己经在explorer的内存块中，所以不会出问题。</span><span style="color: #008000;"><br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #000000;">WaitForSingleObject(threadHandle,&nbsp;INFINITE);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top">VirtualFreeEx(processHandle,dataAddr,</span><span style="color: #000000;">0</span><span style="color: #000000;">,MEM_RELEASE);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top">VirtualFreeEx(processHandle,codeAddr,</span><span style="color: #000000;">0</span><span style="color: #000000;">,MEM_RELEASE);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top">CloseHandle(threadHandle);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top">CloseHandle(processHandle);<br><img  src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top"></span><span style="color: #008000;">//</span><span style="color: #008000;">等待执行完毕，释放内存，关闭句柄。</span></div>
</div>
<p>这就完成了代码的注入与执行。</p><img src ="http://www.cppblog.com/netboy/aggbug/73841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/netboy/" target="_blank">王勇良</a> 2009-02-15 10:15 <a href="http://www.cppblog.com/netboy/archive/2009/02/15/73841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>