首页
社区
课程
招聘
7
[原创]软件保护壳技术专题 - 添加新节(练习笔记)
发表于: 2010-8-16 23:59 8285

[原创]软件保护壳技术专题 - 添加新节(练习笔记)

2010-8-16 23:59
8285
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.386
.model flat, stdcall
option casemap:none
 
include windows.inc
include kernel32.inc
include user32.inc
include macro.asm
includelib kernel32.lib
includelib user32.lib
include     comdlg32.inc
includelib  comdlg32.lib
.data
szSectionName   db '.Alone',0
SecData         db  200 dup('A')
 
.code
include kernel.asm
 
_OpenExeFile proc
local OFN:OPENFILENAME,szFileNameBuff[MAX_PATH]:BYTE
local Map:MapFileHandle
        ;以下是打开通用对话框的操作
        invoke RtlZeroMemory,addr OFN,sizeof OFN    ;初始化结构
        invoke RtlZeroMemory,addr szFileNameBuff,MAX_PATH
        mov OFN.lStructSize,sizeof  OFN
        lea eax,szFileNameBuff
        mov OFN.lpstrFile,eax
        mov OFN.nMaxFile,MAX_PATH
        mov OFN.Flags,OFN_PATHMUSTEXIST or OFN_FILEMUSTEXIST
        invoke  GetOpenFileName,addr OFN    ;打开通用对话框
        ;********************************************
.if eax
invoke  _CalcAlign,sizeof SecData,200H  ;以200H为对齐方式
invoke  _CreatMapFile,addr szFileNameBuff, addr Map,eax;创建一个内存映射文件
mov eax,Map.lpMemory    ;简单判断下PE文件有效性
assume  eax:ptr IMAGE_DOS_HEADER
    .if [eax].e_magic == IMAGE_DOS_SIGNATURE
        add eax,[eax].e_lfanew ;到文件头
        assume  eax:ptr IMAGE_NT_HEADERS
        .if [eax].Signature==IMAGE_NT_SIGNATURE
            invoke  _AddSection,Map.lpMemory,addr szSectionName,sizeof szSectionName,addr SecData,sizeof SecData
            invoke  MessageBox,NULL,CTXT("添加节成功!"),NULL,NULL
            jmp @F
        .endif
    .endif
    invoke MessageBox,NULL,CTXT("不是有效的PE文件!"),NULL,NULL
@@:
invoke  _CloseMapFile, addr Map
.endif
ret
_OpenExeFile endp
 
;OEP
    Start:
    call _OpenExeFile
    invoke ExitProcess,NULL
    end Start

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

上传的附件:
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-5-31 03:15
伟叔叔
为你点赞~
2024-2-11 05:01
QinBeast
为你点赞~
2024-1-16 02:26
shinratensei
为你点赞~
2024-1-9 04:21
心游尘世外
为你点赞~
2023-12-26 00:03
飘零丶
为你点赞~
2023-12-13 05:39
PLEBFE
为你点赞~
2023-3-18 04:33
最新回复 (5)
雪    币: 656
活跃值: (448)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
2
没人顶,只能自己沙发了
2010-8-17 16:52
0
雪    币: 247
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看着汇编代码纠结啊,如果用C的话,就可以看得快了
2010-8-20 00:03
0
雪    币: 38
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
mark,留着以后看看
2010-8-22 06:53
0
雪    币: 1259
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stu
5
不错,不错。
2010-8-22 07:29
0
雪    币: 62
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
可能思路都是一样的原因吧,跟老罗的WIN32汇编有比较大的相似性。
2010-11-10 12:34
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

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