<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<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>孤独剑客 - 编程技巧</title><link>http://www.janker.org/</link><description>专注网络安全技术与产品研究 黑客 培训 VIP会员 DDoS IIS 防火墙 - </description><generator>RainbowSoft Studio Z-Blog 1.8 Arwen Build 90619</generator><language>zh-CN</language><copyright>(C)1999-2010 孤独剑客 版权所有 京ICP备05081975号 </copyright><pubDate>Wed, 08 Sep 2010 20:07:16 +0800</pubDate><item><title>利用未公布API获取CPU使用率</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/45.html</link><pubDate>Sat, 29 Aug 2009 15:35:43 +0800</pubDate><guid>http://www.janker.org/post/45.html</guid><description><![CDATA[<p>利用ntdll.dll中没有公开的API函数: NtQuerySystemInformation</p><p>typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);<br />&nbsp;&nbsp;&nbsp; PROCNTQSI NtQuerySystemInformation;</p><p>&nbsp;&nbsp;&nbsp; NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(<br />...</p>]]></description><category>编程技巧</category><comments>http://www.janker.org/post/45.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=45</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=45&amp;key=1691057c</trackback:ping></item><item><title>堆和栈的区别</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/44.html</link><pubDate>Sat, 29 Aug 2009 15:35:08 +0800</pubDate><guid>http://www.janker.org/post/44.html</guid><description><![CDATA[<p>在bbs上，堆与栈的区分问题，似乎是一个永恒的话题，由此可见，初学者对此往往是混淆不清的，所以我决定拿他第一个开刀。<br />&nbsp;&nbsp;&nbsp; 首先，我们举一个例子：<br />&nbsp;&nbsp;&nbsp; void f() { int* p=new int[5]; } <br />&nbsp;&nbsp;&nbsp; 这条短短的一句话就包含了堆与栈，看到new，我们首先就应该想到，我们分配了一块堆内存，那么指针p呢？他分配的是一块栈内存，所以这句话的意思就是：在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小，然后调用operator new分配内存，然后返回这块内存的首地址，放入栈中，他在VC6下的汇编代码如下：<br />...</p>]]></description><category>编程技巧</category><comments>http://www.janker.org/post/44.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=44</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=44&amp;key=fb1f8c16</trackback:ping></item><item><title>Visual C++开发工具与调试技巧整理方法</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/43.html</link><pubDate>Sat, 29 Aug 2009 15:34:19 +0800</pubDate><guid>http://www.janker.org/post/43.html</guid><description><![CDATA[<p>　　自己总是用VC平台来开发东西，但是有时候总是出这样那样的问题，在这里把Visual C++开发工具与调试技巧整理摘录如下，希望对大家有用，省去大家再去搜索的烦恼。</p><p>　　1.如何在Release状态下进行调试</p><p>　　Project-&gt;Setting=&gt;ProjectSetting对话框，选择Release状态。C/C++标签中的Category选General，Optimizations选Disable(Debug)，Debut info选Program Database。在Link标签中选中Generate debug info复选框。</p>...]]></description><category>编程技巧</category><comments>http://www.janker.org/post/43.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=43</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=43&amp;key=4fc50bff</trackback:ping></item><item><title>TDI网络抓包功能</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/42.html</link><pubDate>Sat, 29 Aug 2009 15:33:11 +0800</pubDate><guid>http://www.janker.org/post/42.html</guid><description><![CDATA[<p>&nbsp;&nbsp; #define MY_PORT&nbsp;&nbsp; 7609</p><p>&nbsp;&nbsp; HANDLE hTdiTransport = NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // handle to tdi transport<br />&nbsp;&nbsp; PFILE_OBJECT pTdiTransportObject = NULL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // pointer to tdi transport object</p>...]]></description><category>编程技巧</category><comments>http://www.janker.org/post/42.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=42</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=42&amp;key=e58884e1</trackback:ping></item><item><title>如何用VC++开发读取网卡MAC地址的程序</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/41.html</link><pubDate>Sat, 29 Aug 2009 15:32:26 +0800</pubDate><guid>http://www.janker.org/post/41.html</guid><description><![CDATA[<p>在实际的应用系统中，我们往往会需要在程序运行时获取当前机器的网卡的MAC地址，以便作为某种标识之用，如控制程序的合法性等。下文就如何用Microsoft Visual C++ 6.0开发这样的程序演示如何实现其要点。</p><p>---- 这里采用的方法是通过Windows 9x/NT/Win2000中内置的NetApi32.DLL的功能来实现的，首先通过发送NCBENUM命令获取网卡的数目和每个网卡的内部编号，然后对每个网卡标号发送NCBASTAT命令获取其MAC地址。注意：这里的网卡是指捆绑了NetBeui协议的通信协议栈，可以在网卡的属性处查看到。</p>...]]></description><category>编程技巧</category><comments>http://www.janker.org/post/41.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=41</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=41&amp;key=de4713ad</trackback:ping></item><item><title>反向连接零管道后门RevDoor.Cpp</title><author>janker007@qq.com (孤独剑客)</author><link>http://www.janker.org/post/40.html</link><pubDate>Sat, 29 Aug 2009 15:30:26 +0800</pubDate><guid>http://www.janker.org/post/40.html</guid><description><![CDATA[<p>/*<br />&nbsp; 1k(程序体积1kb) 反向连接,零管道后门 By Anskya</p><p>说明:<br />&nbsp; 不用我多说了吧..黑客一般都会使用的后门程序..<br />&nbsp; 这里只是简单的演示一下..没有添加进程隐藏功能<br />&nbsp; 程序可以在Win9x,Win2k,WinXP,Win2k3上使用<br />&nbsp; 程序体积只有1k(FSG压缩一下会更小)</p><p>测试:<br />&nbsp; 本地开启NetCat等工具,监听80端口,会返回一个Shell<br />...</p>]]></description><category>编程技巧</category><comments>http://www.janker.org/post/40.html#comment</comments><wfw:comment>http://www.janker.org/</wfw:comment><wfw:commentRss>http://www.janker.org/feed.asp?cmt=40</wfw:commentRss><trackback:ping>http://www.janker.org/cmd.asp?act=tb&amp;id=40&amp;key=2502d32b</trackback:ping></item></channel></rss>
