能力值:
( LV2,RANK:10 )
|
-
-
2 楼
没看明白,主线程退出,程序出就相应的退出了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
好多这种软件,我认为是调用另外exe
|
能力值:
(RANK:860 )
|
-
-
4 楼
主线程退出了的哈,程序也应该要退出了
除非是另外开了一个进程!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
只是一个单独的授权验证程序,验证通过了,就会调用主程序了(你后来看到的那个.exe),估计调用的时候是要传参数过去的
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
没有找到其它主程序啊,能不能说的清楚点
程序运行起来之后,在任务管理器看路径及名字都没有发生变化
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
其实关于主线程退出,程序就退出是一个错误的说法!主线程退出程序退出的原因是编译器编译成EXE后擅自主张给主线程加了个ExitProcess,所以整个程序才会退出!
不信的话可以看以下例子,创建一个线程10秒钟后自动退出,程序会随着线程10后才退出
#include <windows.h>
#pragma comment(linker, "/ENTRY:main")
#pragma comment(linker, "/subsystem:windows")
DWORD WINAPI ThreadProc()
{
Sleep(1000*10);
return 0;
}
int main()
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,0,0,0);
return 0;
}
不过有点答非所问哈,不好意思。上面这个代码用VC编译后就不会有ExitProcess的干扰,不会跟着主线程退出程序
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
一点疑问 编译器能有这么智能么
http://www.pediy.com/bbshtml/bbs8/pediy8-743.htm
每个windows进程开始于它的被默认创建的第一个线程, 通常称其为主线程. 这种机制暗示了一个事实: 进程含有至少一个线程. 主线程和其它的线程没有任何区别, 每个线程都可以创建新的线程. 进程中所有线程都结束时进程会自动被结束, 而主动结束进程时, 如果还有线程没完成, 则系统自动结束这些线程.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我曾经也相信过那句话,记得是WINDOWS核心编程里最先提到的,但是实验证明不是,主线程和其他线程是一样的,主线程结束了其它线程没有结束程序是默认不会退出,会等到所有线程都结束了才结束,编译器是会主动给主线程加一个ExitProcess函数,可以自己随便默认编写一个程序逆向下看看,我上面那个例子也是一个依据,那个例子编译出来的程序不会自动添加任何函数!如果你懒得逆向,可以正常编译一个程序,用PEID工具查看是否会多出很多函数(包括ExitProcess),再用PEID查看下我上面那个例子程序,不会多出任何一个没有用到的函数!
|
|
|