首页
社区
课程
招聘
关于输入法DLL注入..懂的大虾帮帮我
发表于: 2010-3-8 20:04 6571

关于输入法DLL注入..懂的大虾帮帮我

2010-3-8 20:04
6571
网上最近流传输入法DLL注入
我是学JAVA和C#的
对前辈的代码半懂...
小弟用作者的那个列子尝试了下
自己的DLL确实注入进去了(用PN进程管理看了)
可就是没有线程 也就是没有被调用.....
请教下大虾 给小弟讲解一下他的原理 和
我的Dll为什么没有被调用啊?
谢谢各位了

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
.........没人能帮帮我么............
哎..
2010-3-8 22:04
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我来**。。。
2010-3-8 22:07
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kiu
4
关注下
2010-3-9 00:49
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
估计,你只是注入了dll,并没有起线程吧

在dllmain里弹个messagebox看看,注入了成功了就会弹,在main里面搞搞就可以了,区分好load和free
2010-3-9 10:20
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我更加 郁闷 了....
我是学 面向对象的 语言 DLL 对我们来说只是个 动态链接库 相当于一个功能模块...
没有听说过还有个 DLL Main方法呀...........
郁闷 高手 救救我这个无知的人吧...
2010-3-9 16:58
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7


-------------------------


这是C#里面创建一个 类库..貌似就是 DLL郁闷
你们说的那个 DLL是什么呢?
为什么会有 Main方法?
高手啊 救救我吧..
上传的附件:
  • 1.jpg (13.08kb,280次下载)
  • 2.jpg (8.46kb,279次下载)
2010-3-9 17:03
0
雪    币: 463
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我随便说两句,如果说错了牛们见谅啊,第一次回非水的帖,比较紧张。。。
关于注入和创建线程你要区分开哦,注入之后你用OD去attach那个被注入进程,然后点M(或alt+M)可以看到进程空间里有注入的DLL的名字,那就说明注入已经成功了,至于线程,你就要在DLL里创建一个死循环的线程了,如果不是死循环,这个线程一旦运行完了也就自动关掉了,你再查线程肯定查不到,都运行完结束了怎么查啊,所以,创建一个死循环的进程(用CreateThread,别在DLL MAIN里死循环,网上有这方面的代码,很多的,就是PeekMessage TranslateMessage DispatchMessage这三个API的那个)在用OD去attach然后atl+T去看,就能看到线程了,对于DLL MAIN,这个是DLL的入口,就像编console的程序入口是MAIN一样,建议用VC++6写DLL吧,(.NET偶不会写DLL),而且.NET的DLL貌似也是OO的。。。
2010-3-9 19:48
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
您好:
我试着回答一下。你用c#的话,建立一个窗体应用程序
会有如下的类:
static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

main方法是静态的(与java一样)[STAThread]是说明这个线程是静态的,在进程创建以后,会创建一个主线程。这个主线程会创建一个form窗口。消息循环(就是事件,在c#已经封装好了)
你要是在C#中引入dll要调用dllimport(忘了这么写了),然后使用win32的api。你参考windows核心编程,会教你写一个注入其他进程并创建线程,执行的方法(会被杀软报)。

C#是framework框架下(类似虚拟机)跟java一样,要是操作windows的内存,要通过win32api函数(c#下也有操作内存的类吧。不过我没用过,我都是用c++)

你要是有C语言的基础,还是学一学C/C++吧,它写win32的应用程序还是挺顺手的。就是没有c#写页面方便。
2010-3-10 00:09
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
您好:
我试着回答一下。你用c#的话,建立一个窗体应用程序
会有如下的类:
static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

main方法是静态的(与java一样)[STAThread]是说明这个线程是静态的,在进程创建以后,会创建一个主线程。这个主线程会创建一个form窗口。消息循环(就是事件,在c#已经封装好了)
你要是在C#中引入dll要调用dllimport(忘了这么写了),然后使用win32的api。你参考windows核心编程,会教你写一个注入其他进程并创建线程,执行的方法(会被杀软报)。

C#是framework框架下(类似虚拟机)跟java一样,要是操作windows的内存,要通过win32api函数(c#下也有操作内存的类吧。不过我没用过,我都是用c++)

你要是有C语言的基础,还是学一学C/C++吧,它写win32的应用程序还是挺顺手的。就是没有c#写页面方便。
2010-3-10 00:15
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢 前辈指点 多谢了!已结贴!
2010-3-10 14:13
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
5楼说的main方法是DLL文件入口函数。等于控制台下的main函数。等于win32 app里的WinMain函数
2010-3-11 21:00
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不懂,关注ing
2010-3-13 00:54
0
雪    币: 77
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
C#的DLL没有DLLMAIN,不能自动执行的
2010-3-13 06:13
0
游客
登录 | 注册 方可回帖
返回
//