首页
社区
课程
招聘
[旧帖] 一段汇编代码,帮我看下谢谢 0.00雪花
发表于: 2016-2-15 11:00 2760

[旧帖] 一段汇编代码,帮我看下谢谢 0.00雪花

2016-2-15 11:00
2760
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
结束进程
2016-2-15 11:30
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哪里分析出来是结束进程
2016-2-15 13:36
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
100019FA    8B5424 10       mov edx,dword ptr ss:[esp+0x10]
100019FE    8B3D 44500010   mov edi,dword ptr ds:[0x10005044]         ; kernel32.GetProcessId
10001A04    52              push edx
10001A05    FFD7            call edi
10001A07    8BD8            mov ebx,eax
10001A09    FF15 28500010   call dword ptr ds:[0x10005028]            ; kernel32.GetCurrentProcessId
10001A0F    3BD8            cmp ebx,eax
GetProcessId是XP才有的api这样判断是不是在识别系统
那底下那个ZwQueryInformationProcess对比是什么意思呢
2016-2-15 13:39
0
雪    币: 116
活跃值: (210)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
先说说我对整体汇编代码的理解:
整体来说,汇编代码是先通过OpenProcess来得到一些进程的Handle之后,再对这些Handle做如下处理:如果这些进程的ModuleBase目录里面包含有"tmp"相关的字样,则直接关闭该Handle,如果没有"TMP"字样,则查看一下是否是标准输入,输出,出错等,如果是,则会调用"10003C5E"处的函数,由于没有更多的上下文信息,无法具体说明它是什么意思.如果该Handle不是标准输入,输出,出错等,且没有TMP字样,而且不是当前进程,则直接CloseHandle.

整个红色字部分总体来说就做这么几个逻辑判断. 比较GetProcessId 和 GetCurrentProcessId的意思就是用于区分当前正在操作的Handle是否是当前进程的Handle,当前进程的Handle是不能在这个过程中Close的.
2016-2-15 22:29
0
游客
登录 | 注册 方可回帖
返回
//