hacker0058 发表于 2006-6-18 19:26:12

[已解决]:在汇编中怎样把一个整数型的数据转换为文本型

============================================
.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 编辑 ]

黑夜彩虹 发表于 2006-6-18 23:10:05

汇编的我不知道,如果是Delphi的,用IntToStr函数即可

caterpilla 发表于 2006-6-18 23:42:46

我想是先用WSPRINTF把整数信息转成到缓冲区中,然后再把缓冲区内的信息输出。

hacker0058 发表于 2006-6-19 19:08:48

能用代码具体说说吗?

野猫III 发表于 2006-6-19 22:03:02

原帖由 hacker0058 于 2006-6-19 19:08 发表
能用代码具体说说吗?

是呀。。。小黑用Delphi做个这样的Crackme给楼主兄弟反汇编应该一目了然。

hacker0058 发表于 2006-6-23 18:44:37

问题已经解决,谢谢大家的帮忙,代码如下:


;最简单的汇编程序:取前台窗口句柄
.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

caterpilla 发表于 2006-6-23 20:15:17

祝贺下。。。。。。。。。
页: [1]
查看完整版本: [已解决]:在汇编中怎样把一个整数型的数据转换为文本型