首页
社区
课程
招聘
[旧帖] [求助]脱壳后关机! 0.00雪花
发表于: 2009-3-13 23:34 3828

[旧帖] [求助]脱壳后关机! 0.00雪花

2009-3-13 23:34
3828
一个软件脱壳后关机,下断:ExitWindowsEx断不下来,还有其他的函数吗?

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (6)
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己下断CreateFileA和CreateFileW也未发现生成批处理或其他可疑文件。。。郁闷了
2009-3-15 12:04
0
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这是搜集的,对你是否有用:

函数名                函数功能描述

AbortSystemShutdown          取消由InitSystemShutdown引起的系统关闭操作

ExitWindows              注销当前用户

ExitWindowsEx             注销用户,关闭计算机,关闭计算机并且重启

InitiateSystemShutdown         发起关闭系统操作,可以选择关闭后重启

InitiateSystemShutdownEx        同InitiateSystemShutdown,扩展的功能是可以在系统
                    事件日志(事件号6006)中写入一个用户指定的双字节码

LockWorkStation            锁定工作站

系统关闭消息

WM_ENDSESSION

wParam

表示是否要终止程序。如果是TRUE,指令该程序终止,否则是FALSE

lParam

表示用户注销还是系统被关闭。如果此参数包含ENDSESSION_LOGOFF(lParam在这里是按位取值的)位,则表示是用户注销

Windows 2000 以及后续版本:如果lParam ==0,则表示系统被关闭。

程序收到此消息,如果wParam为TRUE,在完成消息处理后,程序随时都有可能被关闭。所以在此消息的处理过程里,应该尽量完成程序销毁前所需要进行的工作。

WM_QUERYENDSESSION

wParam

保留,未使用

lParam

同WM_ENDSESSION;

DefWindowProc默认返回:TRUE

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

在NT/2k/XP下,调用ExitWindowsEx之前需要获得关机权限!   
   
  procedure   TForm1.AdjustToken();   
  var   
      hdlProcessHandle   :   Cardinal;   
      hdlTokenHandle   :   Cardinal;   
      tmpLuid   :   Int64;   
      tkpPrivilegeCount   :   Int64;   
      tkp   :   TOKEN_PRIVILEGES;   
      tkpNewButIgnored   :   TOKEN_PRIVILEGES;   
      lBufferNeeded   :   Cardinal;   
      Privilege   :   array[0..0]   of   _LUID_AND_ATTRIBUTES;   
  begin   
                  hdlProcessHandle   :=   GetCurrentProcess;   
                  OpenProcessToken(hdlProcessHandle,   
                                                  (TOKEN_ADJUST_PRIVILEGES   Or   TOKEN_QUERY),   
                                                      hdlTokenHandle);   
   
                  //   Get   the   LUID   for   shutdown   privilege.   
                  LookupPrivilegeValue('',   'SeShutdownPrivilege',   tmpLuid);   
                  Privilege[0].Luid   :=   tmpLuid;   
                  Privil   
  ege[0].Attributes   :=   SE_PRIVILEGE_ENABLED;   
                  tkp.PrivilegeCount   :=   1;     //   One   privilege   to   set   
                  tkp.Privileges[0]   :=   Privilege[0];   
                  //   Enable   the   shutdown   privilege   in   the   access   token   of   this   
                  //   process.   
                  AdjustTokenPrivileges(hdlTokenHandle,   
                                                              False,   
                                                              tkp,   
                                                              Sizeof(tkpNewButIgnored),   
                                                              tkpNewButIgnored,   
                                                              lBufferNeeded);   
   
  end;
2009-3-15 17:29
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
无了。。。。
2009-3-15 18:30
0
雪    币: 107
活跃值: (2002)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
下GetProcAddress的断
NtShutdownSystem
2009-3-15 21:11
0
雪    币: 412
活跃值: (1963)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
就是自校验。找到校验的关键的关键点就OK了。
2009-3-16 03:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
产生了更高级的中断。
很可能程序拦截了API提示对话框。要分析程序中的不API函数调用。
2009-3-16 11:34
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册