首页
社区
课程
招聘
[旧帖] .Net里面的方法能不能像API一样可以Hook 0.00雪花
发表于: 2013-12-5 10:40 6920

[旧帖] .Net里面的方法能不能像API一样可以Hook 0.00雪花

2013-12-5 10:40
6920
如题
-------------
// System.Text.Encoding
public virtual byte[] GetBytes(string s)
{
        if (s == null)
        {
                throw new ArgumentNullException("s", Environment.GetResourceString("ArgumentNull_String"));
        }
        char[] array = s.ToCharArray();
        return this.GetBytes(array, 0, array.Length);
}
-----------------
比如我想执行GetBytes的时候获取s的值,或者去改变s的值,然后继续执行
像hook  api的时候一样,
不知道这样能不能实现,如果可以实现,那有没有相关的例子或者思路?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
//        [DllImport("kernel32.dll")]
//        static extern int GetCurrentThreadId(); //取得当前线程编号的API
//        [DllImport("User32.dll")]
//        internal extern static void UnhookWindowsHookEx(IntPtr handle); //取消Hook的API
//        [DllImport("User32.dll")]
//        internal extern static IntPtr SetWindowsHookEx(int idHook, [MarshalAs(UnmanagedType.FunctionPtr)] HookProc lpfn, IntPtr hinstance, int threadID);  //设置Hook的API
//        [DllImport("User32.dll")]
//        internal extern static IntPtr CallNextHookEx(IntPtr handle, int code, IntPtr wparam, IntPtr lparam); //取得下一个Hook的API

Hook 就像这样。。。调用Win32的API就行了,接口已经很多了,你的需求肯定可以满足的。
2013-12-5 11:04
0
雪    币: 6366
活跃值: (4336)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=Dstlemoner;1244593]//        [DllImport("kernel32.dll")]
//        static extern int GetCurrentThreadId(); //取得当前线程编号的API
//        [DllImport("User32.dll")]
//    ...[/QUOTE]

可能你理解错了意思,我的目的是,在一个程序加了比如一些.net的壳,不能脱的情况下,
想通过hook程序调用的一些方法来找突破口,
简单说下,如果在vc里面,写了个简单的对比,用strcmp  然后把对比这段代码vm了,在不分析vm的情况下,通过hook strcmp获取两个对比的字符串分别是多少
想知道.net里面能不能实现这种效果?
最后还是感谢你的热心回复
2013-12-5 11:21
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
.NET不是都是中间指令么,貌似比较困难
2013-12-9 22:22
0
雪    币: 6366
活跃值: (4336)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
5

大家提示一下呗,或者说下能不能实现
2013-12-11 14:39
0
雪    币: 11
活跃值: (32)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
实肯定是能实现的.要不然你用VS怎么可以调试代码呢.调试的时候还可以改值哦.
不过感觉研究这方面的人比较少,所以资料也少...不好搞啊.得分析分析VS的调试引擎.看他们是怎么做到的.
2014-2-9 20:55
0
游客
登录 | 注册 方可回帖
返回
//