- 浏览: 1062315 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- C++ (39)
- Java (74)
- Java界面开发学习笔记 (4)
- Java用户的c++之旅 (0)
- 自言自语 (12)
- DSP (1)
- MCU (0)
- CG (0)
- Jabber (0)
- Gloox (0)
- Linux (11)
- Windows (19)
- Networks (4)
- Jobs (0)
- PHP (1)
- JSP (2)
- 生活 (35)
- C (2)
- Qt4 (2)
- C# (50)
- WPF (5)
- ASP (2)
- FLEX (47)
- SQL (20)
- JavaScript (12)
- SharePoint (6)
- GWT (1)
- Dojo (9)
- HTML (11)
- Others (7)
- 如何安装配置系列 (7)
- UML (2)
- Android (3)
- alibaba (1)
最新评论
-
zxjlwt:
学习了http://surenpi.com
Firefox插件开发: Hello World! -
ylldzz:
楼主知道MVEL怎么调试么
MVEL简介及快速使用 -
blueman2012:
您好,可否提供源码下载,我把您的代码贴过来后,好多报错的,谢谢 ...
Log4J日志解析 -
svygh123:
你的游标都没有关闭呢!
MYSQL游标嵌套循环示例 -
dizh:
写的很好啊
MVEL简介及快速使用
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace hooktest01 { public partial class Form1 : Form { [DllImport("kernel32.dll")] public static extern int VirtualAllocEx(IntPtr hwnd, Int32 lpaddress, int size, int type, Int32 tect); [DllImport("kernel32.dll")] public static extern Boolean WriteProcessMemory(IntPtr hwnd, int baseaddress, string buffer, int nsize, int filewriten); [DllImport("kernel32.dll")] public static extern int GetProcAddress(int hwnd, string lpname); [DllImport("kernel32.dll")] public static extern int GetModuleHandleA(string name); [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hwnd, int attrib, int size, int address, int par, int flags, int threadid); [DllImport("kernel32.dll")] public static extern Int32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds); [DllImport("kernel32.dll")] public static extern Boolean VirtualFree(IntPtr lpAddress, Int32 dwSize, Int32 dwFreeType); Process pname; UInt32 INFINITE = 0xFFFFFFFF; Int32 PAGE_EXECUTE_READWRITE = 0x40; Int32 MEM_COMMIT = 0x1000; Int32 MEM_RESERVE = 0x2000; Int32 MEM_RELEASE = 0x8000; Int32 AllocBaseAddress; IntPtr hwnd; string dllname; Int32 Pid; Boolean ok; Int32 loadaddr; IntPtr ThreadHwnd; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { if (textBox1.Text == "" || textBox1.Text == null) { MessageBox.Show("Pid is null"); return; } if (textBox2.Text == "" || textBox2.Text == null) { MessageBox.Show("dll name is null"); return; } Pid = Int32.Parse(textBox1.Text); dllname = textBox2.Text; } catch(Exception error) { MessageBox.Show(error.Message); return; } try { pname = Process.GetProcessById(Pid); hwnd = pname.Handle; } catch(Exception error) { //当标示pid的进程不存在时发生异常; MessageBox.Show (error.Message); return; } AllocBaseAddress= VirtualAllocEx(hwnd, 0, dllname.Length + 1, MEM_COMMIT+ MEM_RESERVE, PAGE_EXECUTE_READWRITE); if (AllocBaseAddress == 0) { MessageBox.Show("virtualallocex fail"); return; } ok=WriteProcessMemory(hwnd, AllocBaseAddress, dllname, dllname.Length + 1,0); if (!ok) { MessageBox.Show("writeprocessmemory fail"); return; } loadaddr = GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA"); if (loadaddr == 0) { //取得LoadLibraryA的地址失败时返回 MessageBox.Show("get loadlibraryA fail"); return; } ThreadHwnd=CreateRemoteThread(hwnd, 0, 0, loadaddr, AllocBaseAddress,0, 0); if (ThreadHwnd ==IntPtr.Zero) { MessageBox.Show("createremotethread fail"); return; } WaitForSingleObject(ThreadHwnd, INFINITE); MessageBox.Show("ok ,you can check now!!!"); VirtualFree(hwnd, 0, MEM_RELEASE); //下面开始枚举模块列表; ProcessModuleCollection pmodule = pname.Modules; foreach (ProcessModule processm in pmodule) { listBox1.Items.Add(processm.FileName); } pname.Dispose(); } //进程 句柄 } }转自:http://blog.csdn.net/pandyer/archive/2009/01/06/3719836.aspx
发表评论
-
策略模式
2010-10-08 16:34 1145一、概念 策略模式(Strategy):它定义了一系 ... -
C#获取返回错误码
2010-05-21 17:59 1783[DllImport("TestWin32Dl ... -
VS.NET 开发Windows服务的步骤
2010-05-20 14:25 1573在很多应用中需要做windows服务来在一些后台操作,比如监视 ... -
c# 允许服务与桌面交互
2010-05-20 14:20 2667我们写一个服务,有时候要让服务启动某个应用程序,就要修 ... -
C#单例模式的三种写法
2010-05-19 15:58 48532第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, ... -
C#中获取我的文档系统文件夹路径
2010-05-17 15:29 2244本技巧使用GetFolderPath方法来获取指向由指定枚 ... -
C#自定义事件的步骤介绍
2010-05-13 17:54 3260通常C#自定义事件有下面的几个步骤: ... -
使用反射机制遍历对象中的属性名及属性值
2010-05-03 16:20 2804首先描述一种情景,当给你一个VO类(这个类是映射到数据库的表 ... -
C#的逆向工程-IL指令集
2010-04-30 10:28 1596一些 IL 语言解释: ... -
使用SqlHelper时“阅读器关闭时read的尝试无效”的解决方法
2010-04-20 14:54 1792原SqlHelper类中ExecuteReader方法体 ... -
C# 删除文件夹
2009-12-31 11:28 2504/// <summary> ... -
System.Windows.Forms.Timer和System.Timers.Timer的区别 [转]
2009-12-16 23:44 5165.NET Framework里面提供了三种Timer: ... -
关于var1=var2=something赋值语句的思考
2009-11-18 16:16 1200刚才在阅读《c#本质论》一书时,开头有提到var1=var2= ... -
C#使textbox滚动到最新一行
2009-11-16 12:33 2459方法1: textBox.Text += " ... -
Invoke()/BeginInvoke()区别
2009-11-15 17:43 7172查看MSDN如下: Control..::.Inv ... -
Invoke 和 BeginInvoke 的真正涵义
2009-11-15 17:37 1295BeginInvoke 方法真的是新开一个线程进行异步调用 ... -
编写安全的多线程C#程序
2009-11-15 01:24 1878与多线程相关的两个常见的需要解决的问题是:临界资源保护和线 ... -
线程,同步与锁——Lock你到底锁住了谁
2009-11-15 01:18 1573线程在多核时代的优势月来越明显,多线程编程的学习也提上议事日程 ... -
关于lock(this)的说明及用法
2009-11-15 01:16 5287一. 为什么要lock,lock了 ... -
C# 3.0新特性之扩展方法
2009-11-09 17:02 954C#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本 ...
相关推荐
C#没有自动调用WIN32的一些API函数,我们可以手动添加内核库到我们自己的代码中,从而实现调用...此方法不仅仅用于远程线程注入,还可以用于从MFC转C#过程中不知道如何用C#实现功能,但有知道如何用MFC实现功能的方法。
C++源代码,DLL工程的主文件。注入的代码和注入后执行的代码在一起。
C#使用EasyHook注入简单案例。C#使用EasyHook注入简单案例。C#使用EasyHook注入简单案例。
把dll注入到远程线程。使用的时候创建一个空的工程,然后把代码当做主文件放到工程中,自己写个mian函数调用injectDLL函数就能注入了。菜鸟级友情提醒:64位别忘了编译成x64的可执行文件
c# 整合c++远程注入 api重写等 记事本应用实例等 是值得一看的小工具
DLL注入其他进程技术 阅读本篇文章,需要有《线程注入其他进程技术》基础。 DLL注入技术才具有强大的功能和使用性,同时简单易用,因为DLL中可以实现复杂的功能和很多的技术。 技术要点: 1、宿主进程...
双击第三个输入框即可生成shellcode,这里默认的shellcode是远程线程注入 注入的是当前程序选择注入的进程 这里选择最左下角的选项,然后再双击输入框 即可生成在自身程序执行的shellcode 这里说明一下哈,这里是...
C#,asp.net 引用DLL 说明,昨天引用了半天引用不了,原来是没有注册 RECER32 注册 引用文件,(路径填好) 在项目里添加引用 即可
C++编写的DLL C#程序调用 远程线程执行DLL注入
DcRat是用C#编写的简单远程工具 屏幕截图 介绍 特征 TCP连接,带有证书验证,稳定且安全 服务器IP端口可以通过链接进行归档 多服务器,多端口支持 通过Dll的插件系统,具有很强的扩展性 极小的客户端大小(约40〜...
全网就这个C#能成功加载驱动,有实例,原理利用C++dll进行注入【远程加载驱动】,如果是自身程序,则直接加载即可!有exe,可运行加载,已经成功(驱动行64位,无签名),没C币请到:...
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
DNCI-点净代码注入器DNCI允许在Windows的非托管进程中远程注入.Net代码(.exe或.dll)。1.项目结构该项目的结构为: DNCI.Injector.Library-注入库包含所有注入组件和逻辑; DNCI.Injector.Runner-用于注入的命令行...
除此之外,对于单继承的C#语言而言,使用接口可以拥有更大 的弹性。 二、接口依赖 既然类之间的依赖导致耦合过于紧密,按照《设计模式》的理论,我们要依赖于接口。但是人们往往发现,仅仅依赖于接口似乎并不能完全...
多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. ...
dll、exe的加密保护 防止软件被反向工程、反向汇编、反向编译 软件的授权控制:限时、限次、限功能,限制设备绑定等 资源文件的加密:PDF、PPT、视频等,防止复制拷贝 优势 Virbox 加密方案配合使用深思新一代...