最近一直在对PE文件进行探索,现在实现了对PE文件的读取的功能,不过代码不是采用asm编制,使用的是C语言,有一定的人机交互功能,这个只是最初版本,之后会建立一个图形用户界面版本的PE文件读取的程序。
下一步是继续看Reversing Engineering,要对C语言进行剖析的有 天书夜读中-从汇编语言到windows内核编程。
之后感觉基本上可以看自己动手写操作系统了。
#include <stdio.h>
#include <windows.h>
//参数是传入文件的路径 读取文件中的DOS_HEADER部分的内容已经实现
BOOL aNalyticsPeF...
- [fpamc] 不做伸手党 02/28 14:20
- [kyolxs] windows 下的汇编。 不知道什么时候我才有能力看? 继续前行! 共勉! 07/19 21:10
- [1035802659] 谢了 05/05 14:14
- [游客] 收藏了 04/21 16:09
- [游客] 这就是你丫的人机交互 06/11 20:19
- [maxm] 研究研究你这个dtoc 05/22 20:45
- [游客] 强,得赶紧学习追赶了。 04/29 10:30
- [findufo] 收藏了 04/25 15:39
- [lanchong317] 我粘贴了 04/25 13:25
- [loswer] 建议不要看谭浩强的《C语言程序设计》的书,太垃圾了。语言结构不严谨,代码格式乱七八糟 还是看由C语 04/11 18:34
- [wangping198611] 收到了,呵呵,谢谢。 04/01 09:22
- [mouse] [ wangping198611 发表于 2009-03-23 11:43 ] 03/31 10:28
[2009-04-26 16:41] 对PE文件的探索
阅读全文 |
评论次数(2) |
浏览次数(1211) |
所属类型(API)
[2009-04-04 23:43] PE文件格式详解
[注意:本译文的所有大小标题序号都是译者添加,以方便大家阅读。圆圈内的数字是注释的编号,其中注释②译自微软的《PECOFF规范》,其它译自网络。----译者]
一、前言(Preface)
------------------
PE(“portable executable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集①中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件②和库文件中。
这种文件格式是由微软设计的,并于1993年被TIS(tool interface stan...
一、前言(Preface)
------------------
PE(“portable executable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集①中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件②和库文件中。
这种文件格式是由微软设计的,并于1993年被TIS(tool interface stan...
阅读全文 |
评论次数(0) |
浏览次数(914) |
所属类型(API)
[2009-04-03 22:18] 2009.4.3
今天才开始明白了,原来我一直学习的汇编是dos下的汇编,和windows下的汇编是有一定的不同的啊,怪不得我看网上其他的一些汇编感觉不怎么和我学的一样呢,呵呵,两种模式的汇编。
建议大家已经学到后面的兄弟姐妹可以开始看看windows下的汇编,推荐是罗云彬的书籍,希望对大家有帮助,里面对于两者有一定的对比的。Good luck。...
建议大家已经学到后面的兄弟姐妹可以开始看看windows下的汇编,推荐是罗云彬的书籍,希望对大家有帮助,里面对于两者有一定的对比的。Good luck。...
阅读全文 |
评论次数(1) |
浏览次数(1272) |
所属类型(汇编日记)
[2009-04-02 13:04] 2009年4月2日
今天连着程序带理解到了15章的位置,速度还算可以,不快也不慢,这些天的每个实验都感觉挺好的,而且入手也不难,逐个分解为简单问题综合起来就把大的问题解决了,这也许就是动态规划的思维吧,继续前进,good luck!...
阅读全文 |
评论次数(1) |
浏览次数(821) |
所属类型(汇编日记)
[2009-04-02 12:52] 实验14 之整合
assume cs:code
code segment
start:
mov di,160*12+40*2;用于显示方面的初始化地址
mov bl,10
rYMD:;读取年月日模块
dec bl
cmp bl,6
je rHMS
mov al,bl
out 70h,al
in al,71h
call show ;每次读取年、月、日、时、分、秒后调用此方法用于显示输出
;mov byte ptr es:[di+4],'/'
;add di,6
jmp rYMD
rHMS:
sub bl,2
cmp...
code segment
start:
mov di,160*12+40*2;用于显示方面的初始化地址
mov bl,10
rYMD:;读取年月日模块
dec bl
cmp bl,6
je rHMS
mov al,bl
out 70h,al
in al,71h
call show ;每次读取年、月、日、时、分、秒后调用此方法用于显示输出
;mov byte ptr es:[di+4],'/'
;add di,6
jmp rYMD
rHMS:
sub bl,2
cmp...
阅读全文 |
评论次数(2) |
浏览次数(885) |
所属类型(汇编作业)
[2009-04-02 10:30] 实验14之一分解
实验14可以分解成为几个子问题,然后逐一解决之后合并程序就成为一个最终的程序:
将实验14可以分解成为读取年、月、日、时、分、秒的信息的读取下面的各个程序为
读取年:
assume cs:code
code segment
start:
mov al,9
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx
mov...
将实验14可以分解成为读取年、月、日、时、分、秒的信息的读取下面的各个程序为
读取年:
assume cs:code
code segment
start:
mov al,9
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx
mov...
阅读全文 |
评论次数(2) |
浏览次数(834) |
所属类型(汇编作业)
[2009-04-02 01:16] 检测点14.2
assume cs:code
code segment
start:
mov ax,10
push ax
shl ax,1
mov bx,ax
pop ax
mov cl,3
shl ax,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
code segment
start:
mov ax,10
push ax
shl ax,1
mov bx,ax
pop ax
mov cl,3
shl ax,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(814) |
所属类型(汇编作业)
[2009-04-02 01:07] 检测点14.1
(1)
assume cs:code
code segment
start:
mov al,2 ;把要访问的端口的号单元保存在al中
out 70h,al;通过地址总线打开2号单元
in al,71h ;从72 端口得到的信息写入到al中
mov ax,4c00h
int 21h
code ends
end start
(2)
assume cs:code
code segment
start:
mov al,2 ;把要访问的端口的号单元保存在al中
...
assume cs:code
code segment
start:
mov al,2 ;把要访问的端口的号单元保存在al中
out 70h,al;通过地址总线打开2号单元
in al,71h ;从72 端口得到的信息写入到al中
mov ax,4c00h
int 21h
code ends
end start
(2)
assume cs:code
code segment
start:
mov al,2 ;把要访问的端口的号单元保存在al中
...
阅读全文 |
评论次数(1) |
浏览次数(844) |
所属类型(汇编作业)
[2009-04-01 20:50] 实验13 编写应用中断例程 之三
assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db ' And better,best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start:
mov ax,cs
mov ds,ax
mov bx,offset s
mov si,off...
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db ' And better,best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start:
mov ax,cs
mov ds,ax
mov bx,offset s
mov si,off...
阅读全文 |
评论次数(1) |
浏览次数(797) |
所属类型(汇编作业)
[2009-04-01 20:27] 实验13 编写应用中断例程 之二
assume cs:code
code segment
start:
;安装的源地址
mov ax,cs
mov ds,ax
mov si,offset ok
;安装的目的地址
mov ax,0
mov es,ax
mov di,200h
;安装程序
mov cx,offset okend-offset ok
cld
rep movsb
;注册中断程序
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4...
code segment
start:
;安装的源地址
mov ax,cs
mov ds,ax
mov si,offset ok
;安装的目的地址
mov ax,0
mov es,ax
mov di,200h
;安装程序
mov cx,offset okend-offset ok
cld
rep movsb
;注册中断程序
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4...
阅读全文 |
评论次数(1) |
浏览次数(868) |
所属类型(汇编作业)
『 查看更多文章 』