用汇编如何打开.C文件

用汇编如何打开.C文件,第1张

AL是打开方式:8位2进制,

当第0到2位为:

000的时候是只读,001是写方式,010是读/写方式

第3位保留,值为0

第4到6位为共享模式:

000:兼容模式

001:不共享

010:拒绝写

011:拒绝读

100:不拒绝任何 *** 作

第7位是继承标志,1就继承句柄

例如:我想打开一个文件,读/写方式,拒绝不允许别的程序写入,则AL为:

0 010 0 010 b

=22h

则 mov al,22h 即可

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

能不能打开文件和文件扩展名没有必然联系

之所以提示访问被拒绝,是由于文件正在被其他程序打开(独占式的),试着退出打开这个c文件的程序,然后再试试汇编看能不能打开了

-=-=-=-=-=-=-=-=-=-=-=-

lea dx,FILENAME

mov al,10h

mov ah,3dh

int 21h

执行完这些语句后如果打开失败,AX返回的就是错误号,你可以通过这些错误号来查找下原因

386

model flat,stdcall

option casemap:none

include C:\masm32\include\windowsinc

include C:\masm32\include\gdi32inc

include C:\masm32\include\user32inc

include C:\masm32\include\kernel32inc

includelib C:\masm32\lib\gdi32lib

includelib C:\masm32\lib\user32lib

includelib C:\masm32\lib\kernel32lib

const

szFileName db "C:\testexe",0

code

_DeleteFile proc AddrDeleteFileName

invoke DeleteFile,AddrDeleteFileName

_DeleteFile endp

start:

invoke _DeleteFile,addr szFileName

end start

C语言里面的语句found(i,&j,&k,s);

翻译为汇编语言是下面这样的:

PUSH

[I]

PUSH

J

PUSH

K

PUSH

[S]

CALL

_found

现在看_FOUND的入口代码:

PUSH

BP

MOV

BP,SP

你现在明白[BP]是什么了吗?是原来的BP

[BP+2]是CALL处的IP

[BP+4]是什么知道吗?就是实际参数S的值

现在明白了吧。

目前的反编译软件,只存在将机器指令码反汇编成汇编代码,不存在将汇编代码反编译成C语言的,因为汇编代码是低级语言,最接近于机器码(具体可查看不同硬件平台的技术资料),每条汇编指令都对应一个固定的机器码,这样进行反汇编是可行的,而C语言属于高级语言,编译器没有能力将汇编语言翻译成C或更高级的语言。

额,看了下,指令格式是 51的; 代码像是 反汇编的代码,或者新手写的命名太不规范了!

转换到是可以转换的,汇编到c还是可以的,但是如果没价值的话就不要翻译了,直接写就好!

工程逆向,比较费神!

如果需要帮忙的话,我们可以相互交流!

满意的话赞一个,呵呵

1、打开IAR FOR STM8工程。

2、编一段C语言的延时程序,作为例子。

3、如何在目前实例上,添加我们的汇编。

4、编译一下是否可以编译通过,编译提示OK。

5、进入仿真界面,是否可以运行。把断点设在汇编的程序上,运行后,可以在断点处停止,说明仿真也是正常的。

以上就是关于用汇编如何打开.C文件全部的内容,包括:用汇编如何打开.C文件、谁帮我写一个汇编程序调用c函数的例子,用masm。是不是要include c函数文件,还得改名为.inc才行、c语言中调用汇编程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9687766.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存