锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲在线播放,欧美精品成人91久久久久久久,在线视频精品一区http://m.shnenglu.com/hugai/zh-cnTue, 30 Sep 2025 06:27:22 GMTTue, 30 Sep 2025 06:27:22 GMT60*鎺у埗嫻佸浘(II)http://m.shnenglu.com/hugai/archive/2010/09/15/126646.html鎮熷北鎮熷北Wed, 15 Sep 2010 04:14:00 GMThttp://m.shnenglu.com/hugai/archive/2010/09/15/126646.htmlhttp://m.shnenglu.com/hugai/comments/126646.htmlhttp://m.shnenglu.com/hugai/archive/2010/09/15/126646.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/126646.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/126646.html鎺у埗嫻佸浘瀵圭紪璇戜紭鍖栧拰紼嬪簭闈欐佸垎鏋愬緢鏈夌敤澶勩傜紪璇戜紭鍖栨牴鎹緟緙栬瘧紼嬪簭鐨勬帶鍒舵祦鍑忓皯鍏朵腑涓嶅繀瑕佺殑璺寵漿錛屼嬌寰椾唬鐮佺粨鏋勬洿鍔犵揣鍑戙傞潤鎬佸垎鏋愬伐鍏鋒牴鎹▼搴忕殑鎺у埗嫻佹潵鍒嗘瀽寰楀埌紼嬪簭鐨勫鏉傚害絳夌瓑涓緋誨垪緇熻淇℃伅錛孷isual Studio鑷甫鐨勪唬鐮佸害閲?Code Metrics)灝辨槸闈欐佸垎鏋愪腑鎺у埗嫻佸浘搴旂敤鐨勪竴涓緥瀛愩?br>



鎮熷北 2010-09-15 12:14 鍙戣〃璇勮
]]>
*鎺у埗嫻佸浘http://m.shnenglu.com/hugai/archive/2010/09/15/126645.html鎮熷北鎮熷北Wed, 15 Sep 2010 04:00:00 GMThttp://m.shnenglu.com/hugai/archive/2010/09/15/126645.htmlhttp://m.shnenglu.com/hugai/comments/126645.htmlhttp://m.shnenglu.com/hugai/archive/2010/09/15/126645.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/126645.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/126645.html鍦ㄦ帶鍒舵祦鍥句腑錛屾湁涓ょ被鐗規畩鐨勪唬鐮佸潡錛屽叆鍙d唬鐮佸潡鍜屽嚭鍙d唬鐮佸潡錛涙墍鏈夌殑鎵ц璺緞閮戒粠鍏ュ彛鍧楀紑濮嬶紝騫朵笖緇撴潫浜庝竴涓嚭鍙e潡銆?br>涓涓帶鍒舵祦鍥炬湰韜槸涓涓浘(Graph)錛屽彲浠ョ敤璁$畻鏈哄浘璁轟腑鐨勬湳璇潵鍔犱互鎻忚堪錛岃濡俥dge錛寁ertex錛宐ack edge絳夌瓑銆?br>涓嬮潰鐨勫浘鐗囧彲浠ヤ綔涓轟竴涓熀鏈殑鎺у埗嫻佸浘鐨勬牱鏈細


鎮熷北 2010-09-15 12:00 鍙戣〃璇勮
]]>
涓涓皬鍨婥RM緋葷粺鐨勮璁★紙鏈畬鎴愮増鏈級http://m.shnenglu.com/hugai/archive/2009/11/06/100292.html鎮熷北鎮熷北Fri, 06 Nov 2009 05:26:00 GMThttp://m.shnenglu.com/hugai/archive/2009/11/06/100292.htmlhttp://m.shnenglu.com/hugai/comments/100292.htmlhttp://m.shnenglu.com/hugai/archive/2009/11/06/100292.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/100292.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/100292.html RequestDataParser(ushort commandValue, ushort flags, Guid sessionId, byte[] requestData); 鍏惰緭鍏ヤ負涓涓畬鏁寸殑鍖呯粨鏋勶紝杈撳嚭涓鴻В鏋愬嚭鏉ョ殑Request Data涓寘鍚殑鏈夋剰涔夌殑瀛楁瀵瑰簲C#涓殑鏁版嵁綾誨瀷錛屼互鍙婅繖浜涙暟鎹殑鍊箋傝繖鏍峰瓙灝辨槸寰楁垜浠兘鍦ㄦ垜浠殑璇鋒眰鐩戝惉灞傚垵濮嬪寲鐨勬椂鍊欐牴鎹厤緗枃浠朵腑鐨勮В鏋愬嚱鏁伴厤緗敞鍐屽悎閫傜殑瑙f瀽鍑芥暟錛屽湪榪愯涓兘澶熻皟鐢ㄦ敞鍐屽ソ鐨勯厤緗嚱鏁拌В鏋愬搴旂殑緗戠粶鏁版嵁灝嗗叾杞崲涓烘湁鎰忎箟鐨勯昏緫鏁版嵁銆? 鍦ㄨ繖縐嶈璁′箣涓嬶紝鐢ㄦ埛濡傛灉闇瑕佸畾涔夎嚜宸辯殑Command Value錛屽亣璁懼叾鍊間負0xF000錛岄偅涔堢敤鎴鋒彁渚涗竴涓彨鍋欳ustomeRequestDataParser.dll鐨勭▼搴忛泦錛屽叾涓寘鍚簡瀵逛簬Command Value0xF0000涓嬬殑Request Data鐨勮В鏋愬嚱鏁板疄鐜幫紝鍏跺疄鐜板涓嬶細 public class CustomeRequestDataParser { public Dictionary RequestDataParser(ushort commandValue, ushort flags, Guid sessionId, byte[] requestData) { Dictionary result = new Dictionary(); if (requestData.Length != 8) { throw new ArgumentException("Invalid network data received."); } byte[] field1 = new byte[4]; byte[] field2 = new byte[4]; Array.Copy(requestData, field1, 4); Array.Copy(requestData, field2, 4, 4); result.Add( typeof(uint), BitConverter.ToUInt32(field1, 0)); result.Add(typeof(uint), BitConverter.ToUInt32(field2, 0)); return result; } } 鍦ㄦ垜浠殑璇鋒眰鐩戝惉灞傜殑紼嬪簭閰嶇疆鏂囦歡涓瓨鍦ㄨ繖涔堜竴欏癸細 鍦ㄦ垜浠殑璇鋒眰鐩戝惉灞傜殑鍒濆鍖栦唬鐮佷腑瀛樺湪榪欎箞鍑犺浠g爜錛? public void RegisterRequestDataParsers() { System.Collections.Specialized.NameObjectCollectionBase.KeysCollection keysCOllection = ConfigurationSettings.AppSettings.Keys; List requestDataParserKeys = new List(); foreach (string keyValue in keysCOllection) { if (keyValue.Contains("CommandValueParser")) { requestDataParserKeys.Add(keyValue); } } foreach (string keyValue in requestDataParserKeys) { string assemblyPath = GetAssemblyPath(ConfigurationSettings.AppSettings[keyValue]); if (!IsAssemblyLoaded(assemblyPath)) { AppDomain.CurrentDomain.Load(assemblyPath); } string typeName = GetTypeName(ConfigurationSettings.AppSettings[keyValue]); ushort commandValue=GetCommandValue(ConfigurationSettings.AppSettings[keyValue]); if (!registeredRequestDataParsers.ContainsKey(commandValue)) { registeredRequestDataParsers.Add(commandValue, Type.GetType(GetTypeFullName(typeName))); } } } 褰撹姹傜洃鍚ā鍧楁敹鍒頒竴涓姹備箣鍚庯紝瀹冧細灝嗗叾杞崲涓轟竴涓簨浠訛紝灝嗗叾鏀捐繘浜嬩歡闃熷垪涓紝涓涓簨浠跺簲璇ュ寘鍚互涓嬩俊鎭細 public class Event { private DateTime timeStamp; private ushort commandValue; private ushort flags; private Guid sessionId; Dictionary requestData; } 涓涓椂闂撮槦鍒楃殑鍙兘瀹氫箟濡備笅錛? public class EventQueue { private List eventPool; private uint eventCount; private Event mostPrioritizedEvent; } 璇鋒眰璋冨害妯″潡涓嶆柇鐨勬煡璇簨浠墮槦鍒椾腑鐨勬椂闂達紝鎸夌収鐗瑰畾鐨勮皟搴︾瓥鐣ユ壘鍑轟竴涓悎閫傜殑浜嬩歡浜ょ粰閫昏緫灞傚鐞嗭細 public abstract class EventSelectionPolicy { } public class EventQueueProcessor { private EventQueue eventQueue; private EventSelectionPolicy eventSelectionPolicy; public void RegisterEventQueue(EventQueue queue) { if (this.eventQueue != null) { throw new ArgumentException("Unable to register another event queue when a queue is still in processing."); } this.eventQueue = queue; } public EventQueue UnregisterEventQueue() { if (this.eventQueue == null) { throw new InvalidOperationException("Unable to unregister an event queue when the queue is not intialized."); } EventQueue queue = this.eventQueue; this.eventQueue = null; return queue; } public void RegisterEventSelectionPolicy(EventSelectionPolicy policy) { this.eventSelectionPolicy = policy; } public Event SelectEvent() { // //return ...; } } EventQueueProcessor璋冪敤SelectEvent鏂規硶鎸夌収娉ㄥ唽榪囩殑璋冨害絳栫暐閫夋嫨涓涓猠vent浜ょ粰閫昏緫澶勭悊灞傚鐞嗐? 鍚庤

鎮熷北 2009-11-06 13:26 鍙戣〃璇勮
]]>
鍦?Net Framework涓姩鎬佸垱寤虹被鍨?--System.Reflection.Emit鍛藉悕絀洪棿灝忚瘯http://m.shnenglu.com/hugai/archive/2009/07/24/91075.html鎮熷北鎮熷北Fri, 24 Jul 2009 13:51:00 GMThttp://m.shnenglu.com/hugai/archive/2009/07/24/91075.htmlhttp://m.shnenglu.com/hugai/comments/91075.htmlhttp://m.shnenglu.com/hugai/archive/2009/07/24/91075.html#Feedback1http://m.shnenglu.com/hugai/comments/commentRss/91075.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/91075.html string assemblyName = this.txtAssemblyName.Text;
            
string className = this.txtClassName.Text;

            System.Diagnostics.Debug.Assert(assemblyName 
!= null && assemblyName != string.Empty);
            System.Diagnostics.Debug.Assert(className 
!= null && className != string.Empty);

            System.Reflection.AssemblyName asmName 
= new System.Reflection.AssemblyName(assemblyName);
            AssemblyBuilder asmBuilder 
= AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.Run);
            ModuleBuilder modBuilder 
= asmBuilder.DefineDynamicModule("MyModule"true);

            TypeBuilder typeBuilder 
= modBuilder.DefineType(className);
            typeBuilder.DefineField(
"myfield",typeof(string), System.Reflection.FieldAttributes.Public);
            MethodBuilder methodBuilder 
= typeBuilder.DefineMethod("CallMethod", System.Reflection.MethodAttributes.Public| System.Reflection.MethodAttributes.SpecialName | System.Reflection.MethodAttributes.HideBySig
                
                , 
nullnew Type[] { typeof(string) });

            methodBuilder.DefineParameter(
0, System.Reflection.ParameterAttributes.Retval, null);
            methodBuilder.DefineParameter(
1, System.Reflection.ParameterAttributes.In, "name");
            ILGenerator ilGenerator 
= methodBuilder.GetILGenerator();

            ilGenerator.Emit(OpCodes.Ldarg_1);
            
//System.Reflection.Assembly asmSystem = System.Reflection.Assembly.GetAssembly(typeof(MessageBox));
            
//Type typeMessageBox = asmSystem.GetType("MessageBox");
            Type typeMessageBox = typeof(MessageBox);
            System.Reflection.MethodInfo mInfoShow 
= typeMessageBox.GetMethod("Show",new Type[]{typeof(string)}
                
//System.Reflection.BindingFlags.Public| System.Reflection.BindingFlags.Static,
                );

            ilGenerator.EmitCall(OpCodes.Call, mInfoShow, 
null);

            ilGenerator.Emit(OpCodes.Ret);

            Type customType 
= typeBuilder.CreateType();
            
object customeObj = Activator.CreateInstance(customType); ;

            System.Reflection.MethodInfo methodInfo 
= customType.GetMethod("CallMethod");
            
//customType.InvokeMember("CallMethod", System.Reflection.BindingFlags.Public, null, customeObj, new object[] { "123" });
            
//methodBuilder.Invoke(customeObj, new object[] { "123" });
            methodInfo.Invoke(customeObj, new object[] { "11" });
            Console.ReadLine();


鎮熷北 2009-07-24 21:51 鍙戣〃璇勮
]]>
[杞澆]婊ゆ嘗鍜屽嵎縐殑璧勬枡姹囨?/title><link>http://m.shnenglu.com/hugai/archive/2009/06/22/88290.html</link><dc:creator>鎮熷北</dc:creator><author>鎮熷北</author><pubDate>Mon, 22 Jun 2009 07:28:00 GMT</pubDate><guid>http://m.shnenglu.com/hugai/archive/2009/06/22/88290.html</guid><wfw:comment>http://m.shnenglu.com/hugai/comments/88290.html</wfw:comment><comments>http://m.shnenglu.com/hugai/archive/2009/06/22/88290.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/hugai/comments/commentRss/88290.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/hugai/services/trackbacks/88290.html</trackback:ping><description><![CDATA[<p>鍘熸枃鍦板潃錛?a >http://hi.baidu.com/niiuniu1127/blog/item/ba6e07fb28248e126d22eb8c.html</a><br><br>浠涔堝彨婊ゆ嘗錛氱敤鐧借瘽璁插氨鏄紝涓涓數淇″彿涓湁鑻ュ共縐嶆垚鍒嗭紝鎶婂叾涓竴閮ㄥ垎浜ゆ祦淇″彿榪囨護鎺夊氨鍙護娉€?/p> <p>鍗風Н鍜屾護娉㈢殑鍖哄埆錛氬湪鏁板瓧淇″彿澶勭悊鐨勭悊璁轟腑錛屽嵎緇欏彲浠ヨ鏄竴縐嶆暟瀛﹁繍綆楋紝鑰屾護娉㈡槸涓縐嶄俊鍙峰鐞嗙殑鏂規硶銆傚嵎縐氨鍍忓姞鏉冧箻娉曚竴鏍鳳紝浣犺兘璇存護娉㈠拰鍔犳潈涔樻硶鏄竴鏍風殑鍚楋紝鏄劇劧涓嶈錛涗絾鏄護娉㈡渶緇堟槸鏈変箻娉曟潵瀹炵幇鐨勩?/p> <p>鑷傚簲婊ゆ嘗灝辨槸婊ゆ嘗鎵鐢ㄧ殑妯℃澘緋繪暟浼氭牴鎹浘鍍忎笉鍚屼綅緗嚜鍔ㄨ皟鏁淬?br>涓兼護娉?median filter)綆鍗曠殑璇村氨鏄細涓涓獥(window)涓績鐨勮薄绱犲煎氨鏄繖涓獥鍖呭惈鐨勮薄绱犱腑澶勪簬涓棿浣嶇疆鐨勮薄绱犲箋?br>鍧囧兼護娉?mean filter)灝辨槸涓涓獥涓績鐨勮薄绱犲煎氨鏄繖涓獥鍖呭惈鐨勮薄绱犵殑騫沖潎鍊箋?br>絀洪棿棰戠巼涓昏鏄寚鍥懼儚鐨勫鉤婊戞垨綺楃硻紼嬪害銆備竴鑸彲璁や負錛岄珮絀洪棿棰戠巼鍖哄煙縐?#8220;綺楃硻”錛屽嵆鍥懼儚鐨勪寒搴﹀煎湪灝忚寖鍥村唴鍙樺寲寰堝ぇ錛岃?#8220;騫蟲粦”鍖猴紝鍥懼儚鐨勪寒搴﹀煎彉鍖栫浉瀵硅緝灝忥紝濡傚鉤婊戠殑姘翠綋琛ㄩ潰絳夈備綆閫氭護娉富瑕佺敤浜庡姞寮哄浘鍍忎腑鐨勪綆棰戞垚鍒嗭紝鍑忓急楂橀鎴愬垎錛岃岄珮閫氭護娉㈠垯姝eソ鐩稿弽錛屽姞寮洪珮棰戠粏鑺傦紝鍑忓急浣庨緇嗚妭錛岀畝鍗曞湴璁詫細楂橀氭護娉㈠鐞嗚繃鐨勫浘鍍忔洿鍔?#8220;綺楃硻”銆傞珮閫氭護娉㈤【鍚嶆濅箟灝辨槸璁╅鐜囬珮鐨勯氳繃錛屼嬌鍥懼儚鍏鋒湁閿愬寲鏁堟灉錛涗綆閫氭護娉㈠垯鎭板ソ鐩稿弽浜嗭紝瀹冩槸浣夸綆棰戦氳繃錛屼嬌鍥懼儚鍏鋒湁騫蟲粦鐨勬晥鏋溿?/p> <p><br>•妯℃澘鐨勫畾涔?–鎵璋撴ā鏉垮氨鏄竴涓郴鏁扮煩闃?–妯℃澘澶у皬錛氱粡甯告槸濂囨暟錛屽錛?3x3   5x5   7x7 –妯℃澘緋繪暟: 鐭╅樀鐨勫厓绱?w1 w2 w3 w4 w5 w6 w7 w8 w9<br>絀哄煙榪囨護鍙婅繃婊ゅ櫒鐨勫畾涔夛細浣跨敤絀哄煙妯℃澘榪涜鐨勫浘鍍忓鐞嗭紝琚О涓虹┖鍩熻繃婊ゃ?br></p> <div><span style="FONT-SIZE: 28pt; COLOR: red">w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">1</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">2</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">3</span><span style="FONT-SIZE: 28pt; COLOR: red"> </span></div> <div><span style="FONT-SIZE: 28pt; COLOR: red">w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">4</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">5</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">6</span><span style="FONT-SIZE: 28pt; COLOR: red"> </span></div> <div><span style="FONT-SIZE: 28pt; COLOR: red">w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">7</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">8</span><span style="FONT-SIZE: 28pt; COLOR: red"><span> </span>w</span><span style="FONT-SIZE: 18pt; COLOR: red; POSITION: relative; TOP: 0.37em">9</span><br><br>妯℃澘鏈韓琚О涓虹┖鍩熻繃婊ゅ櫒<br>絀哄煙榪囨護鍣ㄧ殑鍒嗙被<br>鎸夋晥鏋滃垎錛氶挐鍖栬繃婊ゅ櫒錛岄攼鍖栬繃婊ゅ櫒<br>鎸夋暟瀛﹀艦鎬佸垎綾?br>1錛岀嚎鎬ц繃婊ゅ櫒錛氫嬌鐢ㄤ箻縐拰鐨勮綆楋紝渚嬪錛歊 = w1z1 + w2z2 + … + wnzn<br>楂橀氾細杈圭紭澧炲己銆佽竟緙樻彁鍙?br>浣庨氾細閽濆寲鍥懼儚銆佸幓闄ゅ櫔闊?br>甯﹂氾細鍒犻櫎鐗瑰畾棰戠巼銆佸寮轟腑寰堝皯鐢?br>2錛岄潪綰挎ц繃婊ゅ櫒錛氱粨鏋滃肩洿鎺ュ彇鍐充簬鍍忕礌閭誨煙鐨勫?br>鏈澶у鹼細瀵繪壘鏈浜偣錛屼寒鍖栧浘鐗?br>鏈灝忓鹼細瀵繪壘鏈鏆楃偣錛屾殫鍖栧浘鐗?br>涓鹼細閽濆寲鍥懼儚銆佸幓闄ゅ櫔闊?/div> <p><br>閽濆寲榪囨護鍣ㄧ殑涓昏鐢ㄩ?br>1錛屽澶у浘鍍忓鐞嗗墠錛屽垹鍘繪棤鐢ㄧ殑緇嗗皬緇嗚妭<br>2錛岃繛鎺ヤ腑鏂殑綰挎鍜屾洸綰?br>3錛岄檷浣庡櫔闊?br>4錛岄挐鍖栧鐞嗭紝鎭㈠榪囧垎閿愬寲鐨勫浘鍍?br>5錛屽浘鍍忓垱鑹猴紙闃村獎銆佽蔣杈廣佹湨鑳ф晥鏋滐級<br>緙虹偣錛?br>濡傛灉鍥懼儚澶勭悊鐨勭洰鐨勬槸鍘婚櫎鍣煶錛岄偅涔堬紝浣庨氭護娉㈠湪鍘婚櫎鍣煶鐨勫悓鏃朵篃閽濆寲浜嗚竟鍜屽皷閿愮殑緇嗚妭錛屼絾鏄腑鍊兼護娉㈢畻娉曠殑鐗圭偣錛氬湪鍘婚櫎鍣煶鐨勫悓鏃訛紝鍙互姣旇緝濂藉湴淇濈暀杈圭殑閿愬害鍜屽浘鍍忕殑緇嗚妭閿愬寲榪囨護鍣ㄧ殑涓昏鐢ㄩ?br>1錛屽嵃鍒蜂腑鐨勭粏寰眰嬈″己璋冦傚譏琛ユ壂鎻忋佹寕緗戝鍥懼儚鐨勯挐鍖?br>2錛岃秴澹版帰嫻嬫垚璞★紝鍒嗚鯨鐜囦綆錛岃竟緙樻ā緋婏紝閫氳繃閿愬寲鏉ユ敼鍠?br>3錛屽浘鍍忚瘑鍒腑錛屽垎鍓插墠鐨勮竟緙樻彁鍙?br>4錛岄攼鍖栧鐞嗘仮澶嶈繃搴﹂挐鍖栥佹毚鍏変笉瓚崇殑鍥懼儚<br>5錛屽浘鍍忓垱鑹猴紙鍙墿涓嬭竟鐣岀殑鐗規畩鍥懼儚錛?br>6錛屽皷绔鍣ㄧ殑鐩爣璇嗗埆銆佸畾浣?/p> <p>榪囨護鍣ㄦ晥鏋滅殑鍒嗘瀽<br>1錛屽父鏁版垨鍙樺寲騫崇紦鐨勫尯鍩燂紝緇撴灉涓?鎴栧緢灝忥紝鍥懼儚寰堟殫錛屼寒搴﹁闄嶄綆浜?br>2錛屽湪鏆楃殑鑳屾櫙涓婅竟緙樿澧炲己浜?br>3錛屽浘鍍忕殑鏁翠綋瀵規瘮搴﹂檷浣庝簡<br>4錛岃綆楁椂浼氬嚭鐜拌礋鍊鹼紝褰?澶勭悊涓哄父瑙?/p> <p>鍩烘湰楂橀氱┖鍩熸護娉㈢殑緙虹偣鍜岄棶棰?br>楂橀氭護娉㈠湪澧炲己浜嗚竟鐨勫悓鏃訛紝涓㈠け浜嗗浘鍍忕殑灞傛鍜屼寒搴?br></p> <img src ="http://m.shnenglu.com/hugai/aggbug/88290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/hugai/" target="_blank">鎮熷北</a> 2009-06-22 15:28 <a href="http://m.shnenglu.com/hugai/archive/2009/06/22/88290.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]WM_PAINT娑堟伅灝忕粨http://m.shnenglu.com/hugai/archive/2009/06/04/86764.html鎮熷北鎮熷北Thu, 04 Jun 2009 09:21:00 GMThttp://m.shnenglu.com/hugai/archive/2009/06/04/86764.htmlhttp://m.shnenglu.com/hugai/comments/86764.htmlhttp://m.shnenglu.com/hugai/archive/2009/06/04/86764.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/86764.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/86764.html鍘熸枃鍦板潃錛?a >http://dev.csdn.net/article/74/74935.shtm


WM_PAINT鏄疻indows紿楀彛緋葷粺涓竴鏉¢噸瑕佺殑娑堟伅錛屽簲鐢ㄧ▼搴忛氳繃澶勭悊璇ユ秷鎭疄鐜板湪紿楀彛涓婄殑緇樺埗宸ヤ綔銆?/p>

1. 緋葷粺浣曟椂鍙戦乄M_PAINT娑堟伅錛?/p>

緋葷粺浼氬湪澶氫釜涓嶅悓鐨勬椂鏈哄彂閫乄M_PAINT娑堟伅錛氬綋絎竴嬈″垱寤轟竴涓獥鍙f椂錛屽綋鏀瑰彉紿楀彛鐨勫ぇ灝忔椂錛屽綋鎶婄獥鍙d粠鍙︿竴涓獥鍙h儗鍚庣Щ鍑烘椂錛屽綋鏈澶у寲鎴栨渶灝忓寲紿楀彛鏃訛紝絳夌瓑錛岃繖浜涘姩浣滈兘鏄敱 緋葷粺綆$悊鐨勶紝搴旂敤鍙槸琚姩鍦版帴鏀惰娑堟伅錛屽湪娑堟伅澶勭悊鍑芥暟涓繘琛岀粯鍒舵搷浣滐紱澶у鏁扮殑鏃跺欏簲鐢ㄤ篃闇瑕佽兘澶熶富鍔ㄥ紩鍙戠獥鍙d腑鐨勭粯鍒舵搷浣滐紝姣斿褰撶獥鍙f樉紺虹殑鏁版嵁鏀瑰彉鐨勬椂鍊欙紝榪欎竴鑸槸閫氳繃InvalidateRect鍜?InvalidateRgn鍑芥暟鏉ュ畬鎴愮殑銆侷nvalidateRect鍜孖nvalidateRgn鎶婃寚瀹氱殑鍖哄煙鍔犲埌紿楀彛鐨刄pdate Region涓紝褰撳簲鐢ㄧ殑娑堟伅闃熷垪娌℃湁鍏朵粬娑堟伅鏃訛紝濡傛灉紿楀彛鐨刄pdate Region涓嶄負絀烘椂錛岀郴緇熷氨浼氳嚜鍔ㄤ駭鐢焀M_PAINT娑堟伅銆?/p>

緋葷粺涓轟粈涔堜笉鍦ㄨ皟鐢↖nvalidate鏃跺彂閫乄M_PAINT娑堟伅鍛紵鍙堜負浠涔堥潪瑕佺瓑搴旂敤娑堟伅闃熷垪涓虹┖鏃舵墠鍙戦乄M_PAINT娑堟伅鍛紵榪欐槸鍥犱負緋葷粺鎶婂湪紿楀彛涓殑緇樺埗鎿嶄綔褰撲綔涓縐嶄綆浼樺厛綰х殑鎿嶄綔錛屼簬鏄敖 鍙兘鍦版帹鍚庡仛銆備笉榪囪繖鏍蜂篃鏈夊埄浜庢彁楂樼粯鍒剁殑鏁堢巼錛氫袱涓猈M_PAINT娑堟伅涔嬮棿閫氳繃InvalidateRect鍜孖nvaliateRgn浣夸箣澶辨晥鐨勫尯鍩熷氨浼氳绱姞璧鋒潵錛岀劧鍚庡湪涓涓猈M_PAINT娑堟伅涓竴嬈″緱鍒?鏇存柊錛屼笉浠呰兘閬垮厤澶氭閲嶅鍦版洿鏂板悓涓鍖哄煙錛屼篃浼樺寲浜嗗簲鐢ㄧ殑鏇存柊鎿嶄綔銆傚儚榪欑閫氳繃InvalidateRect鍜孖nvalidateRgn鏉ヤ嬌紿楀彛鍖哄煙鏃犳晥錛屼緷璧栦簬緋葷粺鍦ㄥ悎閫傜殑鏃舵満鍙戦乄M_PAINT娑堟伅鐨勬満 鍒跺疄闄呬笂鏄竴縐嶅紓姝ュ伐浣滄柟寮忥紝涔熷氨鏄錛屽湪鏃犳晥鍖栫獥鍙e尯鍩熷拰鍙戦乄M_PAINT娑堟伅涔嬮棿鏄湁寤惰繜鐨勶紱鏈夋椂鍊欒繖縐嶅歡榪熷茍涓嶆槸鎴戜滑甯屾湜鐨勶紝榪欐椂鎴戜滑褰撶劧鍙互鍦ㄦ棤鏁堝寲紿楀彛鍖哄煙鍚庡埄鐢?br>SendMessage 鍙戦佷竴鏉M_PAINT娑堟伅鏉ュ己鍒剁珛鍗抽噸鐢?br>銆愭敞瑙o細SendMessage浼歜lock鍒拌鍙戦佺殑娑堟伅琚鐞嗗畬鎵嶈繑鍥烇紝浣嗘槸WM_PAINT娑堟伅鐨勫鐞嗘椂闂村張鏄敤鎴蜂笉鍙帶鍒剁殑錛?#8220;GetMessage returns the WM_PAINT message when there are no other messages in the application's message queue, and DispatchMessage sends the message to the appropriate window procedure. ”(MSDN鍘熸枃)錛岄偅涔堜篃灝辨槸璇達紝浣犺皟鐢⊿endMessage涔嬪悗錛岃繖涓柟娉曢渶瑕佺瓑寰呭闀挎椂闂存墠鑳借繑鍥炴槸涓嶅彲鎺у埗鐨勩傛墍浠SDN涓嶆帹鑽愮敤鎴風洿鎺ュ彂閫乄M_PAINT娑堟伅錛?#8220;The WM_PAINT message is generated by the system and should not be sent by an application”銆?br>錛屼絾涓嶅浣跨敤Windows GDI涓烘垜浠彁渚涚殑鏇存柟渚垮拰寮哄ぇ鐨勫嚱鏁幫細UpdateWindow鍜孯edrawWindow銆俇pdateWindow浼氭鏌ョ獥鍙g殑Update Region錛屽綋鍏朵笉涓虹┖鏃舵墠鍙戦乄M_PAINT娑堟伅錛汻edrawWindow鍒欑粰鎴戜滑鏇村鐨勬帶鍒訛細鏄惁閲嶇敾闈炲鎴峰尯鍜岃儗鏅紝鏄惁鎬繪槸鍙戦乄M_PAINT娑堟伅鑰屼笉綆pdate Region鏄惁涓虹┖絳夈?/p>

2. BeginPaint

BeginPaint鍜學M_PAINT娑堟伅绱у瘑鐩稿叧銆傝瘯涓璇曞湪WM_PAINT澶勭悊鍑芥暟涓笉鍐橞eginPaint浼氭庢牱錛熺▼搴忎細鍍忚繘鍏ヤ簡涓涓寰幆涓鏍瘋揪鍒版儕浜虹殑CPU鍗犵敤鐜囷紝浣犱細鍙戠幇紼嬪簭鎬誨湪澶勭悊涓涓帴 涓涓殑WM_PAINT娑堟伅銆傝繖鏄洜涓哄湪閫氬父鎯呭喌涓嬶紝褰撳簲鐢ㄦ敹鍒癢M_PAINT娑堟伅鏃訛紝紿楀彛鐨刄pdate Region閮芥槸闈炵┖鐨勶紙濡傛灉涓虹┖灝變笉闇瑕佸彂閫乄M_PAINT娑堟伅浜嗭級錛孊eginPaint鐨勪竴涓綔鐢ㄥ氨鏄妸璇pdate Region緗負絀猴紝榪欐牱濡傛灉涓嶈皟鐢˙eginPaint錛岀獥鍙g殑Update Region灝變竴鐩翠笉涓虹┖錛屽鍓嶆墍榪幫紝緋葷粺灝變細涓鐩村彂閫乄M_PAINT娑堟伅銆?/p>

BeginPaint鍜學M_ERASEBKGND娑堟伅涔熸湁鍏崇郴銆傚綋紿楀彛鐨刄pdate Region琚爣蹇椾負闇瑕佹摝闄よ儗鏅椂錛孊eginPaint浼氬彂閫乄M_ERASEBKGND娑堟伅鏉ラ噸鐢昏儗鏅紝鍚屾椂鍦ㄥ叾榪斿洖淇℃伅閲屾湁涓涓爣蹇楄〃鏄庣獥鍙h儗鏅槸鍚﹁閲嶇敾榪囥傚綋鎴戜滑鐢↖nvalidateRect鍜孖nvalidateRgn鏉ユ妸鎸囧畾鍖哄煙鍔犲埌Update Region涓椂錛屽彲浠ヨ緗鍖哄煙鏄惁闇瑕佽鎿﹂櫎鑳屾櫙錛岃繖鏍蜂笅涓涓狟eginPaint灝辯煡閬撴槸鍚﹂渶瑕佸彂閫乄M_ERASEBKGND娑堟伅浜嗐?/p>

鍙﹀瑕佹敞鎰忕殑涓鐐規槸錛孊eginPaint鍙兘鍦╓M_PAINT澶勭悊鍑芥暟涓嬌鐢ㄣ?/p>

鎮熷北 2009-06-04 17:21 鍙戣〃璇勮
]]>
[鍥懼儚澶勭悊]鑷傚簲灞閮ㄥ浘鍍忛槇鍊煎鐞嗭紙Adaptive Local Thresholding錛?/title><link>http://m.shnenglu.com/hugai/archive/2009/05/28/86018.html</link><dc:creator>鎮熷北</dc:creator><author>鎮熷北</author><pubDate>Thu, 28 May 2009 09:04:00 GMT</pubDate><guid>http://m.shnenglu.com/hugai/archive/2009/05/28/86018.html</guid><wfw:comment>http://m.shnenglu.com/hugai/comments/86018.html</wfw:comment><comments>http://m.shnenglu.com/hugai/archive/2009/05/28/86018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/hugai/comments/commentRss/86018.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/hugai/services/trackbacks/86018.html</trackback:ping><description><![CDATA[灝嗕竴鍓伆搴﹀浘鍍忚漿鎹負鍙寘鍚負榛戠櫧涓よ壊鐨勪簩鍊煎浘鍍忕О涔嬩負鍥懼儚鐨勯槇鍊煎鐞嗭紱榪欑澶勭悊鏈夊縐嶆柟寮忥紝鏈綆鍗曠殑灝辨槸璁懼畾涓涓潤鎬佺殑闃堝鹼紝鑹茬礌鍊煎ぇ浜庤闃堝肩殑涓虹櫧錛屽惁鍒欒鍊肩殑涓洪粦鑹層備絾鏄湪寰堝鏃跺欙紝榪欑綆鍗曠殑鏂規硶騫朵笉鑳藉緱鍒板緢濂界殑鏁堟灉銆傚湪榪欑瘒鏂囩珷閲岄潰鎴戜滑浠嬬粛涓縐嶅緢綆鍗曠殑灞閮ㄨ嚜閫傚簲鎬у浘鍍忛槇鍊煎寲澶勭悊鏂規硶錛岃鏂規硶鏍規嵁鍥懼儚灞閮ㄧ壒鐐瑰姩鎬佺殑璋冩暣鍏墮槇鍊鹼紝鑳藉寰楀埌姣旇緝鐞嗘兂鐨勯槇鍊煎寲澶勭悊鏁堟灉銆?br><br>璇ユ柟娉曠殑鎬濇兂鏄鍏堝皢鍥懼儚鍒嗕負涓瀹氬ぇ灝忕殑鍖哄潡錛岃繖涓彲浠ユ牴鎹儏鍐甸夌敤錛屾瘮濡備綘鍙互閫夋嫨3*3鐨勭煩闃碉紝鎴栬?*5鐨勭煩闃點傞夊畾濂借繖浜涘皬鍧椾箣鍚庯紝鎴戜滑璁$畻榪欎釜灝忓潡涓寘鍥翠簡涓績鍍忕礌鐐圭殑鍏朵粬鍍忕礌鐐癸紙鎴栬呯敤鎴蜂篃鍙互鍔犲叾浠栫殑闄愬畾鏉′歡閫夋嫨鍍忕礌鐐癸級鐨勭伆搴﹀肩殑鏌愮緇熻淇℃伅錛屾瘮濡傜伆搴﹀潎鍊鹼紝鎴栬呯伆搴︿腑闂村鹼紝鎴栬呮渶澶х伆搴︿笌鏈灝忕伆搴︿箣闂寸殑鍧囧間綔涓轟腑闂村儚绱犵偣鐨勯槇鍊箋傚鏋滀腑闂村儚绱犵偣鐨勭伆搴﹀ぇ浜庤闃堝鹼紝鍒欎腑闂村儚绱犺杞崲涓虹櫧鑹茬偣錛涘弽涔嬶紝鍒欒漿鎹負榛戣壊鐐廣?br>浠OUND(x)浠h〃鍍忕礌鐐箈鍛ㄥ洿鐨勬墍鏈夊儚绱犵偣錛屼互鍑芥暟Statistic(ROUND(x))琛ㄧず瀵逛笂榪扮殑榪欎簺鍍忕礌鐐圭殑鐏板害鍊煎仛緇熻榪愮畻錛岄偅涔堟垜浠殑綆楁硶鎬濇兂鍙互鎻忚堪涓猴細<br>       1錛坸>Statistic(ROUND(x)))<br>x={<br>       0(x<=Statistic(ROUND(x)))<br><br>鍦ㄥ疄闄呮儏鍐典腑錛岄夌敤3*3鐨勫寘鍥寸煩闃靛拰鍙栧潎鍊肩殑緇熻綆楁硶鍙互寰楀埌姣旇緝鐞嗘兂鐨勫鐞嗘晥鏋滐紙澶勭悊鏁堟灉鐨勫浘鐗囧姣斿涓嬶細<br>鍘熷浘錛?br><img height=432 alt="" src="http://m.shnenglu.com/images/cppblog_com/hugai/1.jpg" width=576 border=0><br><br>澶勭悊鍚庡浘鐗囷細<br><br><img height=432 alt="" src="http://m.shnenglu.com/images/cppblog_com/hugai/2.jpg" width=576 border=0><br><br><br>錛夈? <img src ="http://m.shnenglu.com/hugai/aggbug/86018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/hugai/" target="_blank">鎮熷北</a> 2009-05-28 17:04 <a href="http://m.shnenglu.com/hugai/archive/2009/05/28/86018.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞澆]嫻呮瀽鏈満APIhttp://m.shnenglu.com/hugai/archive/2009/05/22/85450.html鎮熷北鎮熷北Fri, 22 May 2009 10:43:00 GMThttp://m.shnenglu.com/hugai/archive/2009/05/22/85450.htmlhttp://m.shnenglu.com/hugai/comments/85450.htmlhttp://m.shnenglu.com/hugai/archive/2009/05/22/85450.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/85450.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/85450.htmlhttp://www.xfocus.net/articles/200503/782.html


鍒涘緩鏃墮棿錛?005-03-09
鏂囩珷灞炴э細杞澆
鏂囩珷鎻愪氦錛?a >cisocker (cisocker_at_163.com)

by sunwear [E.S.T]  
2004/10/02  
shellcoder@163.com

姝ゆ枃鍙兘璇存槸涓綃囩瑪璁幫紝鏄叧浜庢湰鏈篈PI鐨?鏈満API鏄櫎浜哤in32 API錛孨T騫沖彴寮鏀句簡鍙︿竴涓熀鏈帴鍙c傛湰鏈篈PI涔熻寰堝浜烘墍鐔熸倝錛屽洜涓哄唴鏍告ā寮忔ā鍧椾綅浜庢洿浣庣殑緋葷粺綰у埆錛屽湪閭d釜綰у埆涓婄幆澧冨瓙緋葷粺鏄笉鍙鐨勩傚敖綆″姝わ紝騫朵笉闇瑕侀┍鍔ㄧ駭鍒幓璁塊棶榪欎釜鎺ュ彛錛屾櫘閫氱殑Win32紼嬪簭鍙互鍦ㄤ換浣曟椂鍊欏悜涓嬭皟鐢ㄦ湰鏈篈PI銆傚茍娌℃湁浠諱綍鎶鏈笂鐨勯檺鍒訛紝鍙笉榪囧井杞笉鏀寔榪欑搴旂敤寮鍙戞柟娉曘?nbsp; 
    User32.dll,kernel32.dll,shell32.dll,gdi32.dll,rpcrt4.dll,comctl32.dll,advapi32.dll,version.dll絳塪ll浠h〃浜哤in32 API鐨勫熀鏈彁渚涜呫俉in32 API涓殑鎵鏈夎皟鐢ㄦ渶緇堥兘杞悜浜唍tdll.dll錛屽啀鐢卞畠杞彂鑷硁toskrnl.exe銆俷tdll.dll鏄湰鏈?API鐢ㄦ埛妯″紡鐨勭粓绔傜湡姝g殑鎺ュ彛鍦╪toskrnl.exe閲屽畬鎴愩備簨瀹炰笂錛屽唴鏍告ā寮忕殑椹卞姩澶ч儴鍒嗘椂闂磋皟鐢ㄨ繖涓ā鍧楋紝濡傛灉瀹冧滑璇鋒眰緋葷粺鏈嶅姟銆侼tdll.dll鐨勪富瑕佷綔鐢ㄥ氨鏄鍐呮牳鍑芥暟鐨勭壒瀹氬瓙闆嗗彲浠ヨ鐢ㄦ埛妯″紡涓嬭繍琛岀殑紼嬪簭璋冪敤銆侼tdll.dll閫氳繃杞歡涓柇int 2Eh榪涘叆ntoskrnl.exe錛屽氨鏄氳繃涓柇闂ㄥ垏鎹PU鐗規潈綰с傛瘮濡俴ernel32.dll瀵煎嚭鐨勫嚱鏁癉eviceIoControl()瀹為檯涓婅皟鐢╪tdll.dll涓鍑虹殑NtDeviceIoControlFile()錛屽弽姹囩紪涓涓嬭繖涓嚱鏁板彲浠ョ湅鍒幫紝EAX杞藉叆magic鏁?x38錛屽疄闄呬笂鏄郴緇熻皟鐢ㄥ彿錛岀劧鍚嶦DX鎸囧悜鍫嗘爤銆傜洰鏍囧湴鍧鏄綋鍓嶅爢鏍堟寚閽圗SP+4錛屾墍浠DX鎸囧悜榪斿洖鍦板潃鍚庨潰涓涓紝涔熷氨鏄寚鍚戝湪榪涘叆NtDeviceIoControlFile()涔嬪墠瀛樺叆鍫嗘爤鐨勪笢瑗褲備簨瀹炰笂灝辨槸鍑芥暟鐨勫弬鏁般備笅涓涓寚浠ゆ槸int 2Eh錛岃漿鍒頒腑鏂弿榪扮琛↖DT浣嶇疆0x2E澶勭殑涓柇澶勭悊紼嬪簭銆?br>
鍙嶇紪姹囪繖涓嚱鏁板緱鍒幫細

mov eax, 38h

lea edx, [esp+4]

int 2Eh

ret 28h

褰撶劧int 2E鎺ュ彛涓嶄粎浠呮槸綆鍗曠殑API璋冪敤璋冨害鍛橈紝浠栨槸浠庣敤鎴鋒ā寮忚繘鍏ュ唴鏍告ā寮忕殑main gate銆?br>
W2k Native API鐢?48涓繖涔堝鐞嗙殑鍑芥暟緇勬垚錛屾瘮NT 4.0澶氫簡37涓傚彲浠ヤ粠ntdll.dll鐨勫鍑哄垪琛ㄤ腑寰堝鏄撹鍑烘潵錛氬墠緙Nt銆侼tdll.dll涓鍑轟簡249涓紝鍘熷洜鍦ㄤ簬NtCurrentTeb()涓轟竴涓函鐢ㄦ埛妯″紡鍑芥暟錛屾墍浠ヤ笉闇瑕佷紶緇欏唴鏍搞備護浜烘儕濂囩殑鏄紝浠呬粎Native API鐨勪竴涓瓙闆嗚兘澶熶粠鍐呮牳妯″紡璋冪敤銆傝屽彟涓鏂歸潰錛宯toskrnl.exe瀵煎嚭浜嗕袱涓狽t*絎﹀彿錛屽畠浠笉瀛樺湪浜巒tdll.dll涓? NtBuildNumber, NtGlobalFlag銆傚畠浠笉鎸囧悜鍑芥暟錛屼簨瀹炰笂錛屾槸鎸囧悜ntoskrnl.exe鐨勫彉閲忥紝鍙互琚嬌鐢–緙栬瘧鍣╡xtern鍏抽敭瀛楃殑椹卞姩妯″潡瀵煎叆銆侼tdll.dll鍜宯toskrnl.exe涓兘鏈変袱縐嶅墠緙Nt*,Zw*銆備簨瀹炰笂ntdll.dll涓弽姹囩紪緇撴灉涓よ呮槸涓鏍風殑銆傝屽湪ntoskrnl.exe涓紝nt鍓嶇紑鎸囧悜鐪熸鐨勪唬鐮侊紝鑰寊w榪樻槸涓涓猧nt 2Eh鐨剆tub銆備篃灝辨槸璇磟w*鍑芥暟闆嗛氳繃鐢ㄦ埛妯″紡鍒板唴鏍告ā寮忛棬浼犻掔殑錛岃孨t*絎﹀彿鐩存帴鎸囧悜妯″紡鍒囨崲浠ュ悗鐨勪唬鐮併侼tdll.dll涓殑NtCurrentTeb()娌℃湁鐩稿搴旂殑zw鍑芥暟銆侼toskrnl騫朵笉瀵煎嚭閰嶅鐨凬t/zw鍑芥暟銆傛湁浜涘嚱鏁板彧浠ヤ竴縐嶆柟寮忓嚭鐜般?br>
2Eh涓柇澶勭悊紼嬪簭鎶奅AX閲岀殑鍊間綔涓烘煡鎵捐〃涓殑绱㈠紩錛屽幓鎵懼埌鏈緇堢殑鐩爣鍑芥暟銆傝繖涓〃灝辨槸緋葷粺鏈嶅姟琛⊿ST錛孋鐨勭粨鏋凷YSTEM_SERVICE_TABLE鐨勫畾涔夊涓?娓呭崟涔熷寘鍚簡緇撴瀯SERVICE_DESCRIPTOR_TABLE涓殑瀹氫箟錛屼負SST鏁扮粍絎洓涓垚鍛橈紝鍓嶄袱涓湁鐫鐗瑰埆鐨勭敤閫斻?br>
typedef NTSTATUS (NTAPI *NTPROC) ( ) 錛?br>
typedef NTPROC *PNTPROC錛?br>
#define NTPROC_ sizeof (NTPROC)

typedef struct _SYSTEM_SERVICE_TABLE

{ PNTPROC ServiceTable; // 榪欓噷鏄叆鍙f寚閽堟暟緇?br>
PDWORD CounterTable; // 姝ゅ鏄皟鐢ㄦ鏁拌鏁版暟緇?br>
DWORD ServiceLimit ; // 鏈嶅姟鍏ュ彛鐨勪釜鏁?br>
PBYTE ArgumentTable; // 鏈嶅姟鍙傛暟瀛楄妭鏁扮殑鏁扮粍

) SYSTEM_SERVICE_TABLE ,

* PSYSTEM_SERVICE_TABLE ,

* * PPSYSTEM_SERVICE_TABLE ;

/ / _ _ _ _ _ _ _ _ _ _ _ _

typedef struct _SERVICE_DESCRIPTOR_TABLE

{ SYSTEM_SERVICE_TABLE ntoskrnl ; // ntoskrnl鎵瀹炵幇鐨勭郴緇熸湇鍔★紝鏈満鐨凙PI}

SYSTEM_SERVICE_TABLE win32k; // win32k鎵瀹炵幇鐨勭郴緇熸湇鍔?br>
SYSTEM_SERVICE_TABLE Table3; // 鏈嬌鐢?br>
SYSTEM_SERVICE_TABLE Table4; // 鏈嬌鐢?br>
} SERVICE_DESCRIPTOR_TABLE ,

* PSERVICE_DESCRIPTOR_TABLE,

* PPSERVICE_DESCRIPTOR_TABLE 錛?br>
ntoskrnl閫氳繃KeServiceDescriptorTable絎﹀彿,瀵煎嚭浜嗕富瑕丼DT鐨勪竴涓寚閽堛傚唴鏍哥淮鎶ゅ彟澶栫殑涓涓猄DT錛屽氨鏄疜eServiceDescriptorTableShadow銆備絾榪欎釜絎﹀彿娌℃湁瀵煎嚭銆傝鎯沖湪鍐呮牳妯″紡緇勪歡涓瓨鍙栦富瑕丼DT寰堢畝鍗曪紝鍙渶涓よC璇█鐨勪唬鐮?

extern PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable;

PSERVICE_DESCRIPTOR_TABLE psdt= KeServiceDescriptorTable;

NTPROC涓烘湰鏈?API鐨勬柟渚跨殑鍗犱綅絎︼紝浠栫被浼間簬Win32緙栫▼涓殑PROC銆侼ative API姝e父鐨勮繑鍥炲簲璇ユ槸涓涓狽TSTATUS浠g爜錛屼粬浣跨敤NTAPI璋冪敤綰﹀畾錛屽畠鍜宊stdcall涓鏍楓係erviceLimit鎴愬憳鏈夊湪ServiceTable鏁扮粍閲屾壘鍒扮殑鍏ュ彛鏁扮洰銆傚湪2000涓嬶紝榛樿鍊兼槸248銆侫rgumentTable涓築YTEs鐨勬暟緇勶紝姣忎竴涓搴斾簬ServiceTable鐨勪綅緗茍鏄劇ず浜嗗湪璋冪敤鑰呭爢鏍堥噷鐨勫弬鏁版瘮鐗規暟銆傝繖涓俊鎭笌EDX緇撳悎錛岃繖鏄唴鏍鎬粠璋冪敤鑰呭爢鏍坈opy鍙傛暟鍒拌嚜宸辯殑鍫嗘爤鎵闇鐨勩侰ounterTable鎴愬憳鍦╢ree buid鐨?000涓茍娌℃湁浣跨敤鍒幫紝鍦╠ebug build涓紝榪欎釜鎴愬憳鎸囧悜浠h〃鎵鏈夊嚱鏁頒嬌鐢ㄨ鏁扮殑DWORDS鏁扮粍錛岃繖涓俊鎭兘鐢ㄤ簬鎬ц兘鍒嗘瀽銆?br>    鍙互浣跨敤榪欎釜鍛戒護鏉ユ樉紺?dd KeServiceDescriptorTable錛岃皟璇曞櫒鎶婃絎﹀彿瑙f瀽涓?x8046e0c0銆傚彧鏈夊墠鍥涜鏄渶閲嶈鐨勶紝瀵瑰簲閭e洓涓猄DT鎴愬憳銆?br>    榪愯榪欎釜鍛戒護:ln 8046e100錛屾樉紺虹鍙鋒槸KeServiceDescriptorTableShadow錛岃鏄庣浜斾釜寮濮嬬‘瀹炰負鍐呮牳緇存姢鐨勭浜屼釜SDT銆備富瑕佺殑鍖哄埆鍦ㄤ簬鍚庝竴涓寘鍚簡win32k.sys鐨勫叆鍙o紝鍓嶄竴涓嵈娌℃湁銆傚湪榪欎袱涓〃涓紝Table3涓嶵able4閮芥槸絀虹殑銆侼toskrnl.exe鎻愪緵浜嗕竴涓柟渚跨殑API鍑芥暟銆傝繖涓嚱鏁扮殑鍚嶅瓧涓猴細

    KeAddSystemServiceTable
姝ゅ嚱鏁板幓濉厖榪欎簺浣嶇疆銆?br>
2Eh鐨勪腑鏂鐞嗘爣璁版槸KisystemService()銆傝繖涔熸槸ntoskrnl.exe娌℃湁瀵煎嚭鐨勫唴閮ㄧ殑絎﹀彿錛屼絾鍖呭惈鍦?k絎﹀彿鏂囦歡涓傚叧浜嶬isystemService鐨勬搷浣滃涓嬶細

1 浠庡綋鍓嶇殑綰跨▼鎺у埗鍧楁绱DT鎸囬拡

2 鍐沖畾浣跨敤SDT涓?涓猄ST鐨勫叾涓竴涓傞氳繃嫻嬭瘯EAX涓掗両D鐨勭12鍜?3浣嶆潵鍐沖畾銆侷D鍦?x0000-0x0fff鐨勬槧灝勮嚦ntoskrnl琛ㄦ牸錛孖D鍦?br>
0x1000涓?x1ffff鐨勫垎閰嶇粰win32k琛ㄦ牸銆傚墿涓嬬殑0x2000-0x2ffff涓?br>
0x3000-0x3ffff鍒欐槸Table3鍜孴able4淇濈暀銆?br>
3 閫氳繃閫夊畾SST涓殑ServiceLimit鎴愬憳媯鏌AX鐨?錛?1浣嶃傚鏋淚D瓚呰繃浜嗚寖鍥達紝榪斿洖閿欒浠g爜涓篠TATUS_INVALID_SYSTEM_SERVICE銆?br>
4 媯鏌AX涓殑鍙傛暟鍫嗘爤鎸囬拡涓嶮mUserProbeAddress銆傝繖鏄竴涓猲toskrnl瀵煎嚭鐨勫叏灞鍙橀噺銆傞氬父絳変簬0x7FFF0000錛屽鏋滃弬鏁版寚閽堜笉鍦ㄨ繖涓湴鍧涔嬩笅錛岃繑鍥濻TATUS_ACCESS_VIOLATION銆?br>
5 鏌ユ壘ArgumentTable涓殑鍙傛暟鍫嗘爤鐨勫瓧鑺傛暟錛屼粠璋冪敤鑰呯殑鍫嗘爤copy鎵鏈夌殑鍙傛暟鑷沖綋鍓嶅唴鏍告ā寮忓爢鏍堛?br>
6 鎼滅儲serviceTable涓殑鏈嶅姟鍑芥暟鎸囬拡錛屽茍璋冪敤榪欎釜鍑芥暟銆?br>
7 鎺у埗杞埌鍐呴儴鐨勫嚱鏁癒iserviceExit錛屽湪姝ゆ鏈嶅姟璋冪敤榪斿洖涔嬪悗銆?br>
浠庡SDT鐨勮璁哄彲浠ョ湅鍒頒笌鏈満API涓璧瘋繕鏈夌浜屼釜鍐呮牳妯″紡鎺ュ彛銆傝繖涓帴鍙f妸Win32瀛愮郴緇熺殑鍥懼艦璁懼鎺ュ彛鍜岀獥鍙g鐞嗗櫒鍜屽唴鏍告ā寮忕粍浠禬in32k榪炴帴璧鋒潵銆俉in32k鎺ュ彛涓鏍鋒槸鍩轟簬int 2eh銆傛湰鏈篈PI鐨勬湇鍔″彿鏄粠0x0000鍒?x0fff錛寃in32k鐨勬湇鍔″彿鏄粠0x1000鍒?x1fff銆?ddW32pServiceTable璁ゅ畾win32k.sys鐨勭鍙峰彲鐢ㄣ?win32k鎬誨叡鍖呭惈639涓郴緇熸湇鍔°?br>

2Eh鐨勫鐞嗚繃紼嬫病鏈変嬌鐢ㄥ叏灞SDT KeServiceDescriptorTable銆?br>
鑰屾槸涓涓笌綰跨▼鐩稿叧鐨勬寚閽堛傛樉鐒訛紝綰跨▼鍙互鏈変笉鍚屽緱SDT鐩稿叧鍒拌嚜韜傜嚎紼嬪垵璇曞寲鐨勬椂鍊?KeInitializeThread()鎶奒eServiceDescriptorTable鍐欏埌綰跨▼鐨勬帶鍒跺潡銆傚敖綆¤繖鏍鳳紝榪欎釜榛樿璁劇疆涔嬪悗鍙兘琚敼鍙樹負鍏跺畠鍊鹼紝渚嬪KeServiceDescriptorTableShadow銆?br>

Windows 2000榪愯鏃跺簱

Ntdll.dll鑷沖皯瀵煎嚭浜嗕笉灝戜簬1179涓鍙楓傚叾涓殑249/248鏄睘浜嶯t*/zw*闆嗗悎銆傛墍浠ヨ繕鏈?82涓嚱鏁頒笉鏄氳繃int 2eh闂ㄤ腑杞傚緢鏄劇劧錛岃繖涔堝鐨勫嚱鏁頒笉渚濋潬2k鐨勫唴鏍搞?br>
鍏朵腑涓浜涙槸鍜宑榪愯鏃跺簱鍑犱箮涓鏍風殑鍑芥暟銆傚叾瀹瀗toskrnl涔熷疄鐜頒簡涓浜涚被浼鹼跡榪愯鏃跺簱鐨勪竴浜涘嚱鏁般傚彲浠ラ氳繃ddk閲岀殑ntdll.lib鏉ラ摼鎺ュ拰浣跨敤榪欎簺鍑芥暟銆傚弽姹囩紪ntdll.dll涓巒toskrnl.exe鐨勶跡榪愯鏃跺嚱鏁拌兘鍙戠幇錛宯tdll.dll騫朵笉鏄緷璧杗toskrnl.exe銆傝繖涓や釜妯″潡鍚勮嚜瀹炵幇浜嗚繖浜涘嚱鏁般?br>
闄や簡錛h繍琛屾椂搴撳錛?000榪樻彁渚涗簡涓涓墿灞曠殑榪愯鏃跺嚱鏁伴泦鍚堛傚啀涓嬈★紝ntdll.dll涓巒toskrnl.exe鍚勮嚜瀹炵幇浜嗗畠浠傚悓鏍鳳紝瀹炵幇闆嗗悎鏈夐噸澶嶏紝浣嗘槸騫朵笉瀹屽叏鍖歸厤銆傝繖涓泦鍚堢殑鍑芥暟閮芥槸浠tl寮澶寸殑銆?000榪愯鏃跺簱鍖呮嫭涓浜涜緟鍔╁嚱鏁扮敤浜庯跡榪愯鏃跺欐棤娉曞畬鎴愮殑浠誨姟銆備緥濡傛湁浜涘鐞嗗畨鍏ㄤ簨鍔★紝鍙﹀鐨勬搷綰?000涓撶敤鐨勬暟鎹粨鏋勶紝榪樻湁浜涙敮鎸佸唴瀛樼鐞嗐傚井杞粎浠呭湪DDK涓褰曚簡寰堟湁鐢ㄧ殑406涓嚱鏁頒腑鐨?15涓嚱鏁般?br>
Ntdll.dll榪樻彁渚涗簡鍙﹀涓涓嚱鏁伴泦鍚堬紝浠_e鍓嶇紑寮澶淬傚疄闄呬笂瀹冧滑鐢ㄤ簬嫻偣鏁版ā鎷熷櫒銆?br>
榪樻湁寰堝鐨勫嚱鏁伴泦鍚堬紝鎵鏈夎繖浜涘嚱鏁扮殑鍓嶇紑濡備笅錛?br>
__e(嫻偣妯℃嫙),Cc(Cache綆$悊),Csr(c/s榪愯鏃跺簱),Dbg(璋冭瘯鏀寔)錛孍x(鎵ц鏀寔),FsRtl(鏂囦歡緋葷粺榪愯鏃?錛孒al(紜歡鎶借薄灞?,Inbv(緋葷粺鍒濊瘯鍖?vga鍚姩椹卞姩紼嬪簭bootvid.dll),Init(緋葷粺鍒濊瘯鍖?,Interlocked(綰跨▼瀹夊叏鍙橀噺鎿嶄綔),Io(IO綆$悊鍣?,Kd(鍐呮牳璋冭瘯鍣ㄦ敮鎸?,Ke(鍐呮牳渚嬬▼),Ki(鍐呮牳涓柇澶勭悊),Ldr(鏄犺薄瑁呰澆鍣?,Lpc(鏈湴榪囩▼璋冪敤),Lsa(鏈湴瀹夊叏鎺堟潈),Mm(鍐呭瓨綆$悊),Nls(鍥介檯鍖栬璦鏀寔),Nt(NT鏈満API)錛孫b(瀵硅薄綆$悊鍣?,Pfx(鍓嶇紑澶勭悊)錛孭o(鐢墊簮綆$悊),Ps(榪涚▼鏀寔),READ_REGISTER_(浠庡瘎瀛樺櫒鍦板潃璇?錛孯tl(2k榪愯鏃跺簱),Se(瀹夊叏澶勭悊),WRITE_REGISTER_錛堝啓瀵勫瓨鍣ㄥ湴鍧錛?Zw(鏈満API鐨勬浛鎹㈠彨娉?錛?lt;鍏跺畠>(杈呭姪鍑芥暟鍜岋跡榪愯鏃跺簱)銆?br>
褰撶紪鍐欎粠鐢ㄦ埛妯″紡閫氳繃ntdll.dll鎴栧唴鏍告ā寮忛氳繃ntoskrnl.exe鍜?000鍐呮牳浜や簰鐨勮蔣浠剁殑鏃跺欙紝闇瑕佸鐞嗗緢澶氬熀鏈殑鏁版嵁緇撴瀯錛岃繖浜涚粨鏋勫湪Win32涓栫晫涓緢灝戣鍒般?br>
甯哥敤鏁版嵁緇撴瀯

l     鏁存暟

ANSI瀛楃鏄湁絎﹀彿鐨勶紝鑰孶nicode WCHAR鏄棤絎﹀彿鐨?br>
MASM鐨凾BYTE鏄?0浣嶇殑嫻偣鏁幫紝鐢ㄤ簬楂樼簿搴︽誕鐐硅繍綆楀崟鍏冩搷浣滐紝娉ㄦ剰瀹冧笌Win32鐨凾BYTE錛坱ext byte錛夊畬鍏ㄤ笉鍚屻?br>
TABLE 2-3. Equivalent Integral Data Types

BITS    MASM   FUNDAMENTAL    ALIAS #1    ALIAS #2  SIGNED

8       BYTE    unsigned char  UCHAR                 CHAR
16      WORD    unsigned short USHORT     WCHAR      SHORT

32      DWORD   unsigned long  ULONG                 LONG

32      DWORD   unsigned int    UINT                 INT

64      QWORD   unsigned _int64 ULONGLONG DWORDLONG LONGLONG

80      TBYTE    N/A

typedef union _LARGE_INTEGER

{  struct{

ULONG LowPart;

LONG HighPart錛泒;

LONGLONG QuadPart;

}

LARGE_INTEGER , * PULARGE_INTEGER ;

typedef union _ULARGE_INTEGER{

struct{

ULONG LowPart;

ULONG HighPart;锝?br>
ULONGLONG QuadPart;

}ULARGE_INTEGER, *PULARGE_INTEGER;

l     瀛楃

    Win32緙栫▼涓璓STR鐢ㄦ埛CHAR*錛孭WSTR鐢ㄤ簬WCHAR*銆傚彇鍐充簬鏄惁瀹氫箟浜哢NICODE錛孭TSTR瑙i噴涓篜STR鎴栬匬WSTR銆傚湪2k鍐呮牳妯″紡涓嬶紝甯哥敤鐨勬暟鎹被鍨嬫槸UNICODE_STRING錛岃孲TRING鐢ㄦ潵琛ㄧずANSI瀛楃涓?

typedef struct _UNICODE_STRING{

USHORT Length; //褰撳墠瀛楄妭闀垮害錛屼笉鏄瓧絎︼紒錛侊紒

USHORT MaximumLength; //Buffer鐨勬渶澶у瓧鑺傞暱搴?br>
PWSTR Buffer;}UNICODE_STRING , * PUNICODE_STRING ;

typedef struct _STRING{

USHORT Length;

USHORT MaximumLength;

PCHAR Buffer;}STRING, *PSTRING;

typedef STRING ANSI_STRING, *PANSI_STRING;

typedef STRING OEM_STRING, *POEM_STRING;

  鎿嶇旱鍑芥暟:RtlCreatUnicodeString(),RtlInitUnicodeString(),

RtlCopyUnicodeString()絳夌瓑

l     緇撴瀯

璁稿鍐呮牳API鍑芥暟闇瑕佷竴涓浐瀹氬ぇ灝忕殑OBJECT_ATTRIBUTES緇撴瀯錛屾瘮濡侼tOpenFile()銆傚璞$殑灞炴ф槸OBJ_*鍊肩殑緇勫悎錛屽彲浠ヤ粠ntdef.h涓煡鍒般?br>
IO_STATUS_BLOCK緇撴瀯鎻愪緵浜嗘墍璇鋒眰鎿嶄綔緇撴灉鐨勪俊鎭紝寰堢畝鍗曪紝status鎴愬憳鍖呭惈涓涓狽TSTATUS浠g爜, 濡傛灉鎿嶄綔鎴愬姛 information鎴愬憳鎻愪緵鐗瑰畾璇鋒眰鐨勪俊鎭?br>
榪樻湁涓涓粨鏋勬槸LIST_ENTRY錛岃繖鏄竴涓弻鍚戠幆閾捐〃銆?br>
typedef struct _OBJECT_ATTRIBUTES

{

ULONG Length;

HANDLE RootDirectory;

PUNICODE_STRING ObjectName;

ULONG Attributes;

PVOID SecurityDescriptor;

PVOID SecurityQualityOfService;

} OBJECT_ATTRIBDTES, *POBJECT_ ATTRIBUTES;

typedef struct _IO_STATUS_BLOCK

{

NTSTATDS Status;

ULONG Information;

}IO_STATUS_BLOCK , * PIO_STATUS_BLOCK ;

typedef struct _LIST_ENTRY

{

Struct _LIST_ENTRY *Flink;

Struct _LIST_ENTRY *Blink;

}LIST_ENTRY, *PLIST_ENTRY;

鍙屽悜閾捐〃鐨勫吀鍨嬩緥瀛愬氨鏄繘紼嬪拰綰跨▼閾俱傚唴閮ㄥ彉閲廝sActiveProcessHead鏄竴涓狶IST_ENTRY緇撴瀯錛屽湪ntoskrnl.exe鐨勬暟鎹涓紝鎸囧畾浜嗙郴緇熻繘紼嬪垪琛ㄧ殑絎竴涓垚鍛樸?br>
CLIENT_ID緇撴瀯鐢辮繘紼嬪拰綰跨▼ID緇勬垚銆?br>
typedef struct _CLIENT_ID

{ HANDLE UniqueProcess;

HANDLE UniqueThread;

)CLIENT_ID, *PCLIENT_ID;

鎯寵浠庣敤鎴鋒ā寮忚皟鐢╪tdll.dll涓殑API鍑芥暟錛屽繀欏昏冭檻鍒頒互涓嬪洓鐐?

1 SDK澶存枃浠舵病鏈夊寘鎷繖浜涘嚱鏁扮殑鍘熷瀷

2 榪欎簺鍑芥暟浣跨敤鐨勮嫢騫插熀鏈暟鎹被鍨嬫病鏈夊寘鎷湪SDK鏂囦歡涓?br>
3 SDK鍜孌DK澶存枃浠朵笉鍏煎錛屼笉鑳藉湪win32鐨刢婧愭枃浠跺寘鍚玭tddk.h涓?br>
4 ntdll.lib娌℃湁鍖呮嫭鍦╒C鐨勯粯璁ゅ鍏ュ簱鍒楄〃涓?br>
絎?涓緢瀹規槗瑙e喅錛?progma comment(linker,“/defaultlib:ntdll.lib”)

緙哄け鐨勫畾涔夋瘮杈冮毦瑙e喅錛屾渶綆鍗曠殑鏂規硶鏄啓涓涓嚜瀹氫箟鐨勫ご鏂囦歡錛屽垰鍒氬寘鍚渶瑕佽皟鐢╪tdll.dll涓嚱鏁扮殑瀹氫箟銆傚垢榪愮殑鏄紝宸茬粡鍦ㄥ厜鐩樼殑w2k_def.h鏂囦歡涓仛浜嗚繖涓伐浣溿傚洜涓鴻繖涓ご鏂囦歡灝嗙敤浜庣敤鎴鋒ā寮忓拰鍐呮牳妯″紡紼嬪簭錛屾墍浠ュ繀欏誨湪鐢ㄦ埛妯″紡浠g爜涓紝#include<w2k_def.h>涔嬪墠#define _USER_MODE_錛屼嬌寰桪DK涓嚭鐜拌孲DK涓病鏈夌殑瀹氫箟鍙敤銆?br>

鏈枃閮ㄥ垎緲昏瘧浜庝竴綃囩數瀛愪功<win api about>.涔熸劅璋㈡湅鍙婫ameHunter榪欎綅鑻辮鏋佸ソ鐨勬湅鍙嬪府蹇?涓嶧ree鐨勬寚瀵?

鎮熷北 2009-05-22 18:43 鍙戣〃璇勮
]]>
[C#瀛︿範絎旇]鍦╒ista鎴栬匰erver2008涓嬩互Admin妯″紡鍚姩紼嬪簭http://m.shnenglu.com/hugai/archive/2009/05/22/85447.html鎮熷北鎮熷北Fri, 22 May 2009 10:36:00 GMThttp://m.shnenglu.com/hugai/archive/2009/05/22/85447.htmlhttp://m.shnenglu.com/hugai/comments/85447.htmlhttp://m.shnenglu.com/hugai/archive/2009/05/22/85447.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/85447.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/85447.htmlhttp://www.codeproject.com/KB/vista-security/UAC_Shield_for_Elevation.aspx

Vista鍜學indows Server 2008涓婇潰緋葷粺鐨刄AC錛圲ser Account Control錛夐粯璁ゆ槸寮鍚殑錛岀敤鎴峰湪涓鑸儏鍐典笅騫墮氳繃鍙屽嚮鍚姩紼嬪簭閮戒笉鏄互綆$悊鍛樻ā寮忚繍琛屻備絾鏄紝鍦ㄥ緢澶氭儏鍐典笅錛屼負浜嗗湪紼嬪簭閲岄潰璁塊棶緋葷粺鐨勬煇浜涚壒瀹氳祫婧愶紝闇瑕佸綋鍓嶇▼搴忕殑identity鍏鋒湁admin鐨勬潈闄愩傞偅涔堣繖灝遍渶瑕佹秹鍙婂埌媯嫻嬪綋鍓嶇▼搴忕殑鎵ц鐢ㄦ埛鏄惁澶勪簬綆$悊鍛樻ā寮忥紝鍦ㄥ綋鍓嶇▼搴忎笉澶勪簬admin妯″紡鐨勬儏鍐典互admin妯″紡涓嬮噸鍚▼搴忋?br>
鍙傝冧簡http://www.codeproject.com/KB/vista-security/UAC_Shield_for_Elevation.aspx榪欑瘒鏂囩珷錛屽仛濡備笅瀛︿範絎旇銆?br>
涓轟簡媯嫻嬪綋鍓嶈繘紼嬬殑涔嬭鐢ㄦ埛鏄惁鏄鐞嗗憳錛岄渶瑕佺敤鍒癈LR縐峉ystem.Security.Principal鍚嶇О絀洪棿縐嶇殑WindowsIdentity綾誨拰WindowsPrincipal綾匯備笅闈㈡槸浠g爜錛屽緢濂界悊瑙o細

static bool IsAdmin()
        
{
            WindowsIdentity identity 
= WindowsIdentity.GetCurrent();
            WindowsPrincipal principle 
= new WindowsPrincipal(identity);
            
return principle.IsInRole(WindowsBuiltInRole.Administrator);
        }

濡傛灉褰撳墠榪涚▼涓嶆槸澶勪簬綆$悊鍛樻ā寮忥紝閭d箞鎴戜滑鍙互閲嶅惎榪欎釜紼嬪簭銆備負浜嗛噸鍚▼搴忎嬌鐢ㄤ簡System.Diagnostics鍚嶇О絀洪棿涓嬬殑Process綾伙紝Process綾昏皟鐢ㄥ懡浠よ涓嬬殑"runas"鍛戒護錛屼互綆$悊鍛樻ā寮忛噸鏂板惎鍔ㄥ綋鍓嶇▼搴忋備唬鐮佸涓嬶紝涔熷緢濂界悊瑙o細

 static void RestartProcessElevated()
        
{
            ProcessStartInfo info 
= new ProcessStartInfo();
            info.UseShellExecute 
= true;
            info.WorkingDirectory 
= Environment.CurrentDirectory;
            info.FileName 
= System.Windows.Forms.Application.ExecutablePath;
            info.Verb 
= "runas";
            
try
            
{
                Process.Start(info);
            }

            
catch (System.ComponentModel.Win32Exception ex)
            
{
                Console.WriteLine(
"Exception:{0}", ex.Message);
                
return;
            }


            System.Windows.Forms.Application.Exit();
        }


鎮熷北 2009-05-22 18:36 鍙戣〃璇勮
]]>
[杞澆]瑙e墫XP鏈鏍稿績鐨刣ll鈥斺擭TDLL.dll http://m.shnenglu.com/hugai/archive/2009/05/21/83573.html鎮熷北鎮熷北Thu, 21 May 2009 07:23:00 GMThttp://m.shnenglu.com/hugai/archive/2009/05/21/83573.htmlhttp://m.shnenglu.com/hugai/comments/83573.htmlhttp://m.shnenglu.com/hugai/archive/2009/05/21/83573.html#Feedback0http://m.shnenglu.com/hugai/comments/commentRss/83573.htmlhttp://m.shnenglu.com/hugai/services/trackbacks/83573.html2.鍒╃敤GetProcAddress 鑾峰彇鍏跺嚱鏁板叆鍙e湴鍧
3.鍒╃敤寰楀埌鐨勫嚱鏁版寚閽堣皟鐢?br>
浣嗘槸鍙互澶ц嚧鐨勫垎涓哄嚑綾誨惂
1 PropertyLengthAsVariant  瀹冭鎺掑湪浜嗙涓鍙鳳紝浣嗘槸鎴戝氨鏄笉鏄庣櫧瀹冩槸鍋氫粈涔堢殑
2  Csr錛坈onfiguration status register錛?nbsp;Command and Status Register錛燂級緋誨垪  
CsrAllocateCaptureBuffer CsrAllocateMessagePointer CsrCaptureMessageBuffer CsrCaptureMessageMultiUnicodeStringsInPlace 
CsrCaptureMessageString CsrCaptureTimeout CsrClientCallServer CsrClientConnectToServer CsrFreeCaptureBuffer 
CsrGetProcessId CsrIdentifyAlertableThread CsrNewThread CsrProbeForRead CsrProbeForWrite CsrSetPriorityClass

3 Dbg緋誨垪 璋冭瘯鍑芥暟
DbgBreakPoint DbgPrint DbgPrintEx DbgPrintReturnControlC DbgPrompt DbgQueryDebugFilterState DbgSetDebugFilterState 
DbgUiConnectToDbg DbgUiContinue DbgUiConvertStateChangeStructure DbgUiDebugActiveProcess DbgUiGetThreadDebugObject 
DbgUiIssueRemoteBreakin DbgUiRemoteBreakin DbgUiSetThreadDebugObject DbgUiStopDebugging DbgUiWaitStateChange DbgUserBreakPoint

4 ki緋誨垪
KiRaiseUserExceptionDispatcher
KiUserApcDispatcher
KiUserCallbackDispatcher
KiUserExceptionDispatcher

5 Ldr緋誨垪  Loader APIs錛屽叡34涓?br>
API
NTDLL APIs
LoadResource
LdrAccessResource
LdrAlternateResourcesEnabled
DisableThreadLibraryCalls
LdrDisableThreadCalloutsForDll
LdrEnumResources
LdrFindAppCompatVariableInfo
LdrFindEntryForAddress
EnumResourceTypesW
LdrFindResourceDirectory_U
FindResourceExA
LdrFindResource_U
LdrFlushAlternateResourceModules
LdrGetAlternateResourceModuleHandle
GetModuleHandleForUnicodeString
LdrGetDllHandle
GetProcAddress
LdrGetProcedureAddress
LdrInitializeThunk
LoadLibraryEx (LOAD_LIBRARY_AS_DATAFILE)
LdrLoadAlternateResourceModule
LoadLibrary
LdrLoadDll
LdrProcessRelocationBlock
LdrQueryApplicationCompatibilityGoo
LdrQueryImageFileExecutionOptions
LdrQueryProcessModuleInformation
LdrRelocateImage
ExitProcess
LdrShutdownProcess
ExitThread
LdrShutdownThread
LdrUnloadAlternateResourceModule
FreeLibrary
LdrUnloadDll
LdrVerifyImageMatchesChecksum
LdrVerifyMappedImageMatchesChecksum


6 Nls錛圢ational Language Support錛夌郴鍒?nbsp; 浠g爜欏電鐞?nbsp;
NlsAnsiCodePage
NlsMbCodePageTag
NlsMbOemCodePageTag

7 Nt緋誨垪 鍏?85涓紝澶ч儴鍒嗛兘鏄痥ernel32.dll,user32.dll絳夌殑鏍稿績瀹炵幇

NtCreateFile, NtOpenFile, NtClose, NtWaitForSingleObject 鏄痥ernel32.dll涓澶氱敤鎴風駭浠g爜鐨勬牳蹇冨疄鐜般?br>
NTSTATUS NtClose( HANDLE  Handle);
绔熺劧鏄疌loseHandle 鐨勫師韜紒鍞竴鐨勭己鐐規槸璇ュ嚱鏁板茍娌℃湁瀵煎嚭搴擄紝濡傛灉瑕佽皟鐢紝灝卞繀欏諱嬌鐢℅etProcAddress 鏉ヨ幏寰楀叾鍑芥暟鎸囬拡鐒跺悗璋冪敤銆?br>
NtCreateFile  鍙互璇存槸DDK鐨勬牳蹇?br>
RtlUnwind initiates an unwind of procedure call frames 
緇撴瀯鍖栧紓甯革紙Structured Exception Handling, SEH 錛夌殑 鏍稿績銆?br>
NTSTATUS NtWaitForSingleObject(  HANDLE Handle, BOOLEAN Alertable, PLARGE_INTEGER Timeout);
Waits until the specified object attains a state of signaled
鎴戞兂錛屼俊鍙峰悓姝ョ瓑錛屽簲璇ヤ笌涔嬫湁鑾ぇ鐨勮仈緋誨惂

8 pfx 涓嶆槑鐧?br>PfxFindPrefix
PfxInitialize
PfxInsertPrefix
PfxRemovePrefix

9 RestoreEm87Context SaveEm87Context

10 rtl緋誨垪 鍏?06涓傛垜鎯籌紝rtl搴旇鏄痳untime library鐨勭緝鍐欏惂銆備竴涓緢搴炲ぇ鐨勫嚱鏁版棌錛?br>閲岄潰鍖呭惈鍍?nbsp;RtlCreateUserProcess 榪欐牱鐨勪竴浜涘緢鍩烘湰鐨勫嚱鏁幫紝閫氬父渚涘唴鏍告ā寮忕殑driver絳夎皟鐢?br>涓嬮潰鏄竴閮ㄥ垎紺轟緥
APIs Forwarded to NTDLL

API
Destination
DeleteCriticalSection
Forwarded to NTDLL.RtlDeleteCriticalSection
EnterCriticalSection
Forwarded to NTDLL.RtlEnterCriticalSection
HeapAlloc
Forwarded to NTDLL.RtlAllocateHeap
HeapFree
Forwarded to NTDLL.RtlFreeHeap
HeapReAlloc
Forwarded to NTDLL.RtlReAllocateHeap
HeapSize
Forwarded to NTDLL.RtlSizeHeap
LeaveCriticalSection
Forwarded to NTDLL.RtlLeaveCriticalSection
RtlFillMemory
Forwarded to NTDLL.RtlFillMemory
RtlMoveMemory
Forwarded to NTDLL.RtlMoveMemory
RtlUnwind
Forwarded to NTDLL.RtlUnwind
RtlZeroMemory
Forwarded to NTDLL.RtlZeroMemory
SetCriticalSectionSpinCount
Forwarded to NTDLL.RtlSetCriticalSection- SpinCount
TryEnterCriticalSection
Forwarded to NTDLL.RtlTryEnterCriticalSection
VerSetConditionMask
Forwarded to NTDLL.VerSetConditionMask

11 VerSetConditionMask 鐢ㄤ簬紜緋葷粺淇℃伅
The VerSetConditionMask function sets the bits of a 64-bit value to indicate the comparison operator to use for a specified operating system version attribute. 
This function is used to build the dwlConditionMask parameter of the VerifyVersionInfo function.

12 Zw緋誨垪 鍏?84涓傚墠闈㈠凡緇忚榪囷紝涓哄彲鎵ц鎬х郴緇熸湇鍔℃彁渚涘唴鏍告ā寮忕殑鍏ュ彛錛?nbsp;涓篘TOSKRNL.EXE 鎻愪緵瀹炵幇銆傜敱浜庢槸鍐呮牳妯″紡錛屾墍浠ュ湪鎵ц鐨勬椂鍊欏茍涓嶆鏌ョ敤鎴鋒槸鍚︽湁鎵ц鏉冮檺
13 鍐呴儴鍑芥暟 鍏?16涓傚叿浣撲綔鐢ㄤ笉鏄庯紝寰堝簳灞傜殑涓滆タ銆傛棤娉曟煡鍒頒換浣曠浉鍏寵祫鏂欍傛棤娉曞緱鐭ヤ笌鍏剁浉鍏崇殑浠諱綍淇℃伅銆?br>_CIcos 
_CIlog 
_CIpow 
_CIsin 
_CIsqrt 
__eCommonExceptions 
__eEmulatorInit 
__eF2XM1 
__eFABS 
__eFADD32 
__eFADD64 
__eFADDPreg 
__eFADDreg 
__eFADDtop 
__eFCHS 
__eFCOM 
__eFCOM32 
__eFCOM64 
__eFCOMP 
__eFCOMP32 
__eFCOMP64 
__eFCOMPP 
__eFCOS 
__eFDECSTP 
__eFDIV32 
__eFDIV64 
__eFDIVPreg 
__eFDIVR32 
__eFDIVR64 
__eFDIVRPreg 
__eFDIVRreg 
__eFDIVRtop 
__eFDIVreg 
__eFDIVtop 
__eFFREE 
__eFIADD16 
__eFIADD32 
__eFICOM16 
__eFICOM32 
__eFICOMP16 
__eFICOMP32 
__eFIDIV16 
__eFIDIV32 
__eFIDIVR16 
__eFIDIVR32 
__eFILD16 
__eFILD32 
__eFILD64 
__eFIMUL16 
__eFIMUL32 
__eFINCSTP 
__eFINIT 
__eFIST16 
__eFIST32 
__eFISTP16 
__eFISTP32 
__eFISTP64 
__eFISUB16 
__eFISUB32 
__eFISUBR16 
__eFISUBR32 
__eFLD1 
__eFLD32 
__eFLD64 
__eFLD80 
__eFLDCW 
__eFLDENV 
__eFLDL2E 
__eFLDLN2 
__eFLDPI 
__eFLDZ 
__eFMUL32 
__eFMUL64 
__eFMULPreg 
__eFMULreg 
__eFMULtop 
__eFPATAN 
__eFPREM 
__eFPREM1 
__eFPTAN 
__eFRNDINT 
__eFRSTOR 
__eFSAVE __eFSCALE __eFSIN __eFSQRT __eFST __eFST32 __eFST64 __eFSTCW __eFSTENV __eFSTP __eFSTP32 __eFSTP64 __eFSTP80
 __eFSTSW __eFSUB32 __eFSUB64 __eFSUBPreg __eFSUBR32 __eFSUBR64 __eFSUBRPreg __eFSUBRreg __eFSUBRtop __eFSUBreg __eFSUBtop
 __eFTST __eFUCOM __eFUCOMP __eFUCOMPP __eFXAM __eFXCH __eFXTRACT __eFYL2X __eFYL2XP1 __eGetStatusWord 

14 涓浜汣RT鐨勫熀鏈嚱鏁?nbsp;鍏?31涓?nbsp;涓昏鏄瓧絎︿覆綆$悊錛岃繕鏈変簺鍩烘湰鐨勬暟瀛﹀嚱鏁?br>__isascii __iscsym __iscsymf __toascii _alldiv _alldvrm _allmul _alloca_probe _allrem _allshl _allshr _atoi64 _aulldiv _aulldvrm _aullrem _aullshr _chkstk _fltused 
_ftol _i64toa _i64tow _itoa _itow _lfind _ltoa _ltow _memccpy _memicmp _snprintf _snwprintf _splitpath _strcmpi _stricmp _strlwr _strnicmp _strupr _tolower 
_toupper _ui64toa _ui64tow _ultoa _ultow _vsnprintf _vsnwprintf _wcsicmp _wcslwr _wcsnicmp _wcsupr _wtoi _wtoi64 _wtol abs atan atoi atol bsearch ceil 
cos fabs floor isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper iswalpha iswctype iswdigit iswlower iswspace iswxdigit isxdigit labs log 
mbstowcs memchr memcmp memcpy memmove memset pow qsort sin sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk 
strrchr strspn strstr strtol strtoul swprintf tan tolower toupper towlower towupper vDbgPrintEx vDbgPrintExWithPrefix vsprintf wcscat wcschr wcscmp wcscpy 
wcscspn wcslen wcsncat wcsncmp wcsncpy wcspbrk wcsrchr wcsspn wcsstr wcstol wcstombs wcstoul

鎮熷北 2009-05-21 15:23 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚洲成人精品| 美女精品一区| 国产婷婷一区二区| 欧美日韩一区二区三区在线看| 玖玖综合伊人| 欧美成年人视频网站| 欧美高清视频免费观看| 蜜桃av综合| 欧美日韩高清一区| 欧美日韩国产成人高清视频| 欧美日韩成人在线观看| 国产精品乱码| 国产精品人人爽人人做我的可爱 | 亚洲福利国产| 亚洲黄色免费网站| 免费高清在线一区| 亚洲国产精品尤物yw在线观看 | 国产日本欧美一区二区三区| 国产一区二区三区不卡在线观看 | 亚洲欧美制服中文字幕| 久久国产精品网站| 老司机成人网| 欧美麻豆久久久久久中文| 欧美韩日一区二区| 国产精品三上| 最新高清无码专区| 亚洲欧美日韩精品久久久久| 久久精品一区蜜桃臀影院| 欧美国产一区二区在线观看| 日韩写真在线| 欧美亚洲网站| 欧美日韩国产三级| 激情五月***国产精品| 久久婷婷蜜乳一本欲蜜臀| 欧美大胆a视频| 国产日产欧产精品推荐色| 亚洲国产cao| 欧美一区二粉嫩精品国产一线天| 亚洲高清免费| 久久狠狠婷婷| 国产精品久久久久久久久免费桃花| 伊人久久综合97精品| 亚洲在线一区| 亚洲精品视频免费观看| 久久久午夜视频| 国产精品蜜臀在线观看| 国产精品丝袜白浆摸在线| 亚洲精品综合精品自拍| 久久一区二区精品| 亚洲伊人网站| 国产精品成av人在线视午夜片| 91久久精品国产91久久性色| 午夜宅男久久久| 午夜一区二区三区在线观看| 国产精品三级视频| 亚洲影院在线观看| 999在线观看精品免费不卡网站| 麻豆精品在线观看| 黄色在线成人| 久久人人九九| 久久蜜桃香蕉精品一区二区三区| 国产日韩欧美一二三区| 先锋资源久久| 午夜国产精品视频| 国产精品一区二区在线观看| 亚洲一区免费在线观看| 日韩视频在线免费观看| 欧美日韩国产成人在线| 亚洲视频在线观看| av成人免费| 国产精品成人aaaaa网站| 国产精品99久久久久久久久久久久| 亚洲欧洲在线播放| 欧美三级视频| 性视频1819p久久| 午夜免费在线观看精品视频| 亚洲欧美激情四射在线日| 欧美日韩亚洲一区二区三区| 在线综合亚洲| 亚洲狼人综合| 狂野欧美激情性xxxx| 久久频这里精品99香蕉| 最新精品在线| 99精品国产在热久久婷婷| 国产精品久久毛片a| 国产亚洲一区精品| 久久亚洲一区二区| 欧美搞黄网站| 亚洲欧美日韩国产中文在线| 欧美尤物巨大精品爽| 一色屋精品亚洲香蕉网站| 欧美xx视频| 国产精品成人一区二区| 亚洲国产欧美在线人成| 亚洲国产91色在线| 欧美日韩调教| 久久久噜噜噜久久狠狠50岁| 欧美99在线视频观看| 亚洲特级片在线| 久久大逼视频| 亚洲午夜av| 久久久久99| 亚洲午夜视频| 裸体歌舞表演一区二区| 亚洲深夜激情| 久久久久国色av免费观看性色| 亚洲老板91色精品久久| 性色av一区二区三区在线观看| 最新国产の精品合集bt伙计| 亚洲一区二区在线免费观看视频| 一区精品久久| 一区二区三区回区在观看免费视频| 国模套图日韩精品一区二区| 亚洲精品视频在线播放| 伊人狠狠色丁香综合尤物| 一本大道久久a久久综合婷婷| 激情视频一区二区三区| 亚洲影视在线| 亚洲视屏一区| 欧美大片在线观看一区二区| 久久国产精品亚洲77777| 欧美人体xx| 欧美成人一区二区三区在线观看| 国产精品久久久久一区| 亚洲精品一区在线观看| 影音欧美亚洲| 久久久久国产精品人| 亚欧美中日韩视频| 欧美午夜在线一二页| 亚洲国产综合91精品麻豆| 狠狠色伊人亚洲综合网站色| 亚洲一区二区精品在线观看| 亚洲天堂av高清| 欧美aaa级| 亚洲欧洲日本在线| 夜夜夜久久久| 欧美视频在线观看 亚洲欧| 亚洲另类黄色| 亚洲在线网站| 国产精品成人午夜| 亚洲影院一区| 欧美一区综合| 激情综合色丁香一区二区| 欧美与黑人午夜性猛交久久久| 欧美伊人久久久久久久久影院| 国产精品视频免费| 欧美一区二区高清在线观看| 久久久亚洲欧洲日产国码αv | 久久躁日日躁aaaaxxxx| 女同一区二区| 亚洲精品一区二区三区在线观看| 欧美成人中文字幕| 亚洲黄色毛片| 99热在线精品观看| 国产精品大片| 久久精彩视频| 亚洲国产激情| 亚洲一区欧美二区| 国产精品男女猛烈高潮激情 | 亚洲理论在线观看| 久久久国产精品一区| 一区二区三区四区五区视频 | 国产欧美大片| 亚洲欧美国产高清| 久久精品国产2020观看福利| 在线看无码的免费网站| 久久亚洲欧美| 亚洲国产精品99久久久久久久久| 91久久嫩草影院一区二区| 久久久精品2019中文字幕神马| 麻豆9191精品国产| 亚洲丰满在线| 欧美日本簧片| 久久精品国产91精品亚洲| 农村妇女精品| 一区二区三区国产精品| 国产精品每日更新| 久久精品中文| 亚洲国产日韩欧美| 久久久99久久精品女同性| 韩国v欧美v日本v亚洲v| 久久精品中文字幕免费mv| 男同欧美伦乱| 欧美亚洲网站| 一区二区视频免费在线观看 | 欧美国产日韩精品| 91久久精品一区| 亚洲欧美福利一区二区| 亚洲高清激情| 国产精品乱人伦一区二区 | 亚洲一区二区在线| 国产亚洲精品一区二区| 欧美不卡一卡二卡免费版| 亚洲精品免费一二三区| 性亚洲最疯狂xxxx高清| 亚洲激情一区二区三区| 欧美午夜大胆人体| 欧美激情在线观看| 欧美亚洲尤物久久| 亚洲国产一区二区在线|