上帝玩骰子
--shadowk
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 17 文章- 16 评论- 88
2009年5月15日
ConsoleHelper
Code
public
static
class
ConsoleHelper
{
private
const
int
CTRL_CLOSE_EVENT
=
2
;
public
delegate
bool
ConsoleCtrlDelegate(
int
dwCtrlType);
[DllImport(
"
kernel32.dll
"
)]
private
static
extern
bool
SetConsoleCtrlHandler(ConsoleCtrlDelegate HandlerRoutine,
bool
Add);
private
static
bool
HandlerRoutine(
int
CtrlType)
{
switch
(CtrlType)
{
case
CTRL_CLOSE_EVENT:
break
;
}
return
false
;
}
public
static
void
SetHandler()
{
ConsoleCtrlDelegate newDategate
=
HandlerRoutine;
SetConsoleCtrlHandler(newDategate,
true
);
}
posted @
2009-05-15 16:42
ShadowK 阅读(14) |
评论 (0)
|
编辑
DllHelper
Code
public
static
class
DllHelper
{
private
static
IntPtr libHandle
=
IntPtr.Zero;
[DllImport(
"
kernel32
"
)]
private
static
extern
IntPtr LoadLibrary(
string
lpLibFileName);
[DllImport(
"
kernel32
"
)]
private
static
extern
IntPtr GetProcAddress(IntPtr hModule,
string
lpProcName);
[DllImport(
"
kernel32
"
)]
private
static
extern
IntPtr FreeLibrary(IntPtr hLibModule);
public
static
object
Invoke(
string
fileName,
string
funName,
object
[] objParams, Type returnType)
{
try
{
//
获取函数地址
if
(libHandle
==
IntPtr.Zero)
libHandle
=
LoadLibrary(fileName);
if
(libHandle
==
IntPtr.Zero)
return
null
;
IntPtr procAddres
=
GetProcAddress(libHandle, funName);
if
(procAddres
==
IntPtr.Zero)
return
null
;
//
获取参数类型
Type[] paramTypes
=
new
Type[objParams.Length];
for
(
int
i
=
0
; i
<
objParams.Length;
++
i)
{
paramTypes[i]
=
objParams[i].GetType();
}
//
构建调用方法模型
AssemblyName asembyName
=
new
AssemblyName();
asembyName.Name
=
"
WinDllInvoke_Assembly
"
;
AssemblyBuilder asembyBuilder
=
AppDomain.CurrentDomain.DefineDynamicAssembly(asembyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder
=
asembyBuilder.DefineDynamicModule(
"
WinDllInvoke
"
);
MethodBuilder methodBuilder
=
moduleBuilder.DefineGlobalMethod(
"
InvokeFun
"
, MethodAttributes.Public
|
MethodAttributes.Static, returnType, paramTypes);
//
获取一个 ILGenerator ,用于发送所需的 IL
ILGenerator IL
=
methodBuilder.GetILGenerator();
for
(
int
j
=
0
; j
<
paramTypes.Length;
++
j)
{
//
将参数压入堆栈
if
(paramTypes[j].IsValueType)
{
IL.Emit(OpCodes.Ldarg, j);
//
By Value
}
else
{
IL.Emit(OpCodes.Ldarga, j);
//
By Addrsss
}
}
//
判断处理器类型
if
(IntPtr.Size
==
4
)
{
IL.Emit(OpCodes.Ldc_I4, procAddres.ToInt32());
}
else
if
(IntPtr.Size
==
8
)
{
IL.Emit(OpCodes.Ldc_I8, procAddres.ToInt64());
}
else
{
throw
new
PlatformNotSupportedException(
"
不好意思,偶不认得你哦!
"
);
}
IL.EmitCalli(OpCodes.Calli, CallingConvention.StdCall, returnType, paramTypes);
IL.Emit(OpCodes.Ret);
//
返回值
moduleBuilder.CreateGlobalFunctions();
//
取得方法信息
MethodInfo methodInfo
=
moduleBuilder.GetMethod(
"
InvokeFun
"
);
return
methodInfo.Invoke(
null
, objParams);
//
调用方法,并返回其值
}
catch
{
return
null
; }
}
public
static
void
FreeLibrary()
{
if
(libHandle
!=
IntPtr.Zero) FreeLibrary(libHandle);
}
posted @
2009-05-15 16:12
ShadowK 阅读(12) |
评论 (0)
|
编辑
2009年1月8日
C# C++ 相互序列化
摘要: 最近项目需要,为了解决C++和C#之间Socket通信,能够传对象。写了个C++序列化的功能主要是兼容C#序列化的格式,这样用C++序列化的xml,可以用C#反序列化回来,反之同理。不敢藏起来,拿出来同大家分享。话不多说,直接上代码。http://files.cnblogs.com/ShadowK/seri.rarC#部分。[代码]C++部分:[代码][代码][代码][代码][代码]
阅读全文
posted @
2009-01-08 18:21
ShadowK 阅读(345) |
评论 (0)
|
编辑
2008年9月26日
QQ大家来找茬外挂
在网上找了一个原型,用不起,自已改了下,现在更快,更方便.
下载
QQ大家来找茬外挂2009(含源码)
posted @
2008-09-26 12:18
ShadowK 阅读(1614) |
评论 (11)
|
编辑
2008年3月29日
迅雷漫画下载 v1.0(绿色版) 附源码
摘要: 发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具.
阅读全文
posted @
2008-03-29 02:35
ShadowK 阅读(5683) |
评论 (36)
|
编辑
2007年6月3日
测试浏览器,网络环境的好工具
http://www.cjol.com/test/sc/step1.htm
posted @
2007-06-03 01:18
ShadowK 阅读(98) |
评论 (0)
|
编辑
2007年4月29日
冷笑话集锦
摘要: 有一只企鹅,他的家离北极熊家特别远,要是靠走的话,得走20年才能到。有一天,企鹅在家里呆着特别无聊,准备去找北极熊玩,与是他出门了,可是走到路的一半的时候发现自己忘记锁门了,这就已经走了10年了,可是门还是得锁啊,于是企鹅又走回家去锁门。锁了门以后,企鹅再次出发去找北极熊,等于他花了40年才到了北极熊他们家……然后企鹅就敲门说:“北极熊北极熊,企鹅找你玩来了!”
结果北极熊开门以后你猜他说什么?……
阅读全文
posted @
2007-04-29 10:50
ShadowK 阅读(306) |
评论 (0)
|
编辑
2006年12月27日
(转载)动态控件的状态问题
摘要: 下面两页差别很小,就是一句语句的前后次序有所不同,但PostBack后显示效果有所不同,请解释为什么显示效果不同,并且解释正确显示的那页(你知道是哪页,对么?)中Response.Write的输出结果。
阅读全文
posted @
2006-12-27 10:10
ShadowK 阅读(411) |
评论 (1)
|
编辑
2006年12月7日
(转载)基于.net开发平台项目案例集锦
摘要: 作者:郑佐 2006-10-31
经过微软.net Framework 2.0的革新,.net平台的开发越来越精彩。笔者收集基于.net开发的n个项目,一方面为新手提供有价值学习资源,培养起软件开发的乐趣,另一方面共勉已从事.net领域工作多年并有明确发展目标的同仁,提高自己,更上一层楼。
阅读全文
posted @
2006-12-07 09:46
ShadowK 阅读(1605) |
评论 (16)
|
编辑
2006年11月29日
我的第一个像模像样的程序:虹影 [远程监控]
摘要: 写的一个木马程序.主要那时候在学校里喜欢整人家的机子玩,就写了一个木马类的程序,大二的时候开始的吧,那时候还在用VB,写的一个程序.仅作记念.程序是开源的,如果要的话,请联系我.
我把它放到网上126的邮箱里了,在"草稿"里,有兴趣的朋友可以去下
www.126.com
用户名:rsroom
密码:11111111
阅读全文
posted @
2006-11-29 08:49
ShadowK 阅读(427) |
评论 (0)
|
编辑
2006年11月28日
(转载)Ajax.NET与Atlas的比较
摘要: 简介:
Ajax.NET是一款免费的面向.Net的Ajax Library
Atlas是微软提供给开发者的Ajax开发包
两者都可以让ASP.Net具备Ajax功能
近日,利用空闲时间把这两个东西做了不完全的比较
阅读全文
posted @
2006-11-28 14:01
ShadowK 阅读(446) |
评论 (0)
|
编辑
(转载)用好VS2005之扩展membership服务
摘要: ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务,它提供了用于创建和管理用户帐户的易于使用的API
ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务,它提供了用于创建和管理用户帐户的易于使用的API。ASP.NET 1.x大规模引入了窗体身份验证,但仍然要求您编写相当数量的代码来执行实际操作中的窗体身份验证。成员身份服务填补了ASP.NET 1.x窗体身份验证服务的不足,并且使实现窗体身份验证变得比以前简单得多。
成员身份API通过两个新的类公开:Membership和MembershipUser。前者包含了用于创建用户、验证用户以及完成其他工作的静态方法。MembershipUser代表单个用户,它包含了用于检索和更改密码、获取上次登录日期以及完成类似工作的方法和属性。通过这两个新的类,我们可以不用写一行代码,方便得完成对用户的管理。 但是在实际开发过程中,绝对不能满足我们日常开发的需要。经过日常项目的开发和网络上资料的搜索,现将其一一列出:
阅读全文
posted @
2006-11-28 14:00
ShadowK 阅读(731) |
评论 (2)
|
编辑
2006年11月23日
(转载)关于asp.net的配置文件说明。
摘要: Contents
Machine.config
Web.config
Changing Settings
Using the
Section
Using NameValueFileSectionHandler
Custom Configuration Sections
Conclusion
阅读全文
posted @
2006-11-23 17:11
ShadowK 阅读(296) |
评论 (1)
|
编辑
2006年11月22日
(转载).NET 2.0的Provider模式
摘要: Provider设计模式是在.NET 1.1 framework中被首次介绍到,特别是在ASP.NET快速入门中,以及后来在ASP.NET Whidbey中作为membership management provider API被正式化。它的主要目的在于为一个API进行定义和实现的分离。这样就通过核心功能的灵活性和易于修改的特点使得API具有灵活性。
阅读全文
posted @
2006-11-22 14:25
ShadowK 阅读(775) |
评论 (0)
|
编辑
2006年11月21日
(转载)rootkit综述
摘要: 在网络安全中经常会遇到rootkit,NSA安全和入侵检测术语字典( NSA Glossary of Terms Used in Security and Intrusion Detection)对rootkit的定义如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operatin
阅读全文
posted @
2006-11-21 08:50
ShadowK 阅读(101) |
评论 (0)
|
编辑
仅列出标题
下一页
公告
广交喜欢技术和创业的朋友 QQ:50248291 msn: NewShadowk@hotmail.com
我的最新闪存
吃东西了。
<
2009年7月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参与的团队
Silverlight学习与研究(0/0)
我的标签
迅雷(1)
漫画下载(1)
漫画(1)
下载(1)
QQ大家来找茬外挂(1)
大家来找茬(1)
外挂(1)
随笔档案
(17)
2009年5月 (2)
2009年1月 (1)
2008年9月 (1)
2008年3月 (1)
2007年6月 (1)
2007年4月 (1)
2006年12月 (2)
2006年11月 (7)
2006年7月 (1)
文章分类
(16)
设计模式学习日志(16)
(rss)
文章档案
(16)
2006年7月 (16)
收藏夹
(17)
.Net相关(17)
(rss)
最新随笔
1. ConsoleHelper
2. DllHelper
3. C# C++ 相互序列化
4. QQ大家来找茬外挂
5. 迅雷漫画下载 v1.0(绿色版) 附源码
6. 测试浏览器,网络环境的好工具
7. 冷笑话集锦
8. (转载)动态控件的状态问题
9. (转载)基于.net开发平台项目案例集锦
10. 我的第一个像模像样的程序:虹影 [远程监控]
11. (转载)Ajax.NET与Atlas的比较
12. (转载)用好VS2005之扩展membership服务
13. (转载)关于asp.net的配置文件说明。
14. (转载).NET 2.0的Provider模式
15. (转载)rootkit综述
积分与排名
积分 - 24950
排名 - 2332
最新评论
1. re: 动态类帮助器
我写动态类遇到个焦头烂额的问题:动态类继承于比如Class1,生成动态类的实例后,把实例转型成Class1然后访问某属性,访问的却是Class1的属性。比如: Class1有个public virtu... (qcrsoft)
2. re: QQ大家来找茬外挂
下来看看先 (风之旖旎)
3. re: 动态类帮助器
创建出来的类型如果不想要了,应该如何删除掉呢,有没有什么方法? (mero)
4. re: 迅雷漫画下载 v1.0(绿色版) 附源码
....迅雷改版了。。用不了了。。。
能更新下么 (snowcool)
5. re: QQ大家来找茬外挂
能够随便点5下就好了。 (haapybell)
阅读排行榜
1. 迅雷漫画下载 v1.0(绿色版) 附源码(5683)
2. 动态类帮助器(3162)
3. QQ大家来找茬外挂(1614)
4. (转载)基于.net开发平台项目案例集锦(1605)
5. (转载).NET 2.0的Provider模式(775)
评论排行榜
1. 迅雷漫画下载 v1.0(绿色版) 附源码(36)
2. 动态类帮助器(23)
3. (转载)基于.net开发平台项目案例集锦(16)
4. QQ大家来找茬外挂(11)
5. (转载)用好VS2005之扩展membership服务(2)