|
广告 |
![]() |
|
|
|
评论:只需一个DLL的线程插入 (98,2K,XP通用) |
![]() |
huoshanlangzhe
604160
|
2021/1/13 11:11:25 |
下来学习中,谢谢 |
tim001
10708
|
2004/12/20 16:13:25 |
好利害哦 |
liumazi
10660
|
2004/12/18 16:18:51 |
to magicer: 请看此例 http://bbs.2ccc.com/topic.asp?topicid=135917 |
magicer
10637
|
2004/12/17 23:32:18 |
如何加窗体到DLL中去并运行? 我不要那个一直变的效果 |
liumazi
8915
|
2004/10/26 12:39:38 |
汇编代码应该是这样才对,因为是参数先入栈,然后才是返回地址.
procedure ThreadPro; begin asm pop eax //返回EIP pop edx //丢弃参数 Push eax //返回EIP end; end;
不过,如果再加上其他代码.比如使用了局部变量,那上面的方法又不行了. 因为堆栈被用来放置局部变量,过程出入口会自动加上修改堆栈的代码. 看来还是老老实实定义成function ThreadFunc( x: pointer ): DWORD; stdcall;比较好 procedure ThreadFunc( x: pointer ); stdcall; 也行,因为返回值放在EAX中,可忽略. |
liumazi
8899
|
2004/10/25 17:52:10 |
描述不准确 至于保证同一时刻只能插入一个线程,则还需要一个互斥对象....:) 应该是: 保证同一时刻只能存在一个插入的线程,则还需要一个互斥对象 |
liumazi
8898
|
2004/10/25 17:26:42 |
如果一定要不写参数也可以,但是要自己手动修改指针.比如这样写: procedure ThreadPro; begin //............. asm pop eax end //............. end; |
liumazi
8897
|
2004/10/25 17:10:49 |
'MutexForExe8Mazi' 是防止多个Start.exe进程同时进行线程插入. 至于保证同一时刻只能插入一个线程,则还需要一个互斥对象....:)
另外一个问题,回调函数一定要写成这样的形式,否则堆栈就不对了. function ThreadFunc( x: pointer ): DWORD; stdcall;
还有,最好在线程最后加一句:FreeLibraryAndExitThread(LibraryH,666); 第1,释放动态链接库(使引用次数减到0) 第2,直接结束线程,避免函数返回时出错. |
jyh11111
8890
|
2004/10/25 11:34:53 |
好啊! 不过,你的 CreateMutex(nil,TRUE,'MutexForExe8Mazi') 防止重复运行可没有达到效果啊! |
czp
8887
|
2004/10/25 10:16:40 |
支持 |
hwhohwh
8771
|
2004/10/16 21:08:14 |
不错,代码条理清晰,有独特的一面。并不是照抄《delphi下深入windows核心编程》。我倒是觉得这本书通篇都是Copy网上内容,我买了就后悔。 |
9903
8509
|
2004/9/18 9:30:32 |
果然厉害,用这个作木马恐怕很难被发现,windows核心编程上的例子还不如这个威力大 |
netbat
8506
|
2004/9/18 7:45:23 |
麻子兄,看来想不佩服你都不行呀~~~期待你的下一个佳作! |
zhi_ling
8505
|
2004/9/18 0:25:12 |
从delphi下深入windows核心编程弄来来的 |
banz
8451
|
2004/9/15 23:43:36 |
好东西!研究研究! |
liumazi
8442
|
2004/9/15 20:20:59 |
再补充一句, 如果之前有编写的进程版本的木马,只要把其原代码 移到Thread.pas中的线程函数中,即可达到很好的隐藏效果. 如果 原先的木马也有用钩子,可以一并封装到此DLL中.呵呵,一DLL多用. |
第一页 |
上一页
|
下一页
|
最后页 |
有
16
条纪录 共1页
1
-
16
|
|
|
|