[已解决]:在汇编中怎样把一个整数型的数据转换为文本型
============================================.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
MsgBoxCaptiondb "执行成功!",0
MsgBoxText db "执行成功!要继续吗?",0
.data?
hInstanceDWORD?
.code
start:
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, 1
mov hInstance,eax ;hInstance是个整数型的,怎样在MessageBox中调用啊
invoke MessageBox, NULL,addr hInstance, addr MsgBoxCaption, MB_OK
invoke ExitProcess, NULL
end start
===================================================
我刚学汇编,先谢谢了!
[ 本帖最后由 hacker0058 于 2006-6-23 18:46 编辑 ] 汇编的我不知道,如果是Delphi的,用IntToStr函数即可 我想是先用WSPRINTF把整数信息转成到缓冲区中,然后再把缓冲区内的信息输出。 能用代码具体说说吗? 原帖由 hacker0058 于 2006-6-19 19:08 发表
能用代码具体说说吗?
是呀。。。小黑用Delphi做个这样的Crackme给楼主兄弟反汇编应该一目了然。 问题已经解决,谢谢大家的帮忙,代码如下:
;最简单的汇编程序:取前台窗口句柄
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
MsgBoxCaptiondb "前台窗口句柄",0
template db '%lX',0
posBuffer db 10 dup (0)
.code
start:
invoke GetForegroundWindow ;API取取前台窗口句柄,结果保存在eax
;下面的"offset"是传址的意思,有相同功能的还有"addr"操作符
invoke wsprintf,offset posBuffer,offset template,eax;整数型转换到文本型
invoke MessageBox, NULL, offset posBuffer, offset MsgBoxCaption, MB_OK;调用信息框显示出来
invoke ExitProcess, NULL ;结束程序
end start 祝贺下。。。。。。。。。
页:
[1]