首页
社区
课程
招聘
局部变量初始化工具
发表于: 2009-7-16 22:12 3141

局部变量初始化工具

2009-7-16 22:12
3141
用RadASM编程时,关于局部变量初始化,是不是只有我才会用到??
很多时候不想用全局变量,只用局部变量时初始化字符串很烦的,就写了几句代码,来灌下水!
o(∩_∩)o...

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 218
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
include gdi32.inc
includelib gdi32.lib
DLG_MAIN EQU   1000H
IDC_OK   EQU   2000H
IDC_EDIT1 EQU   3000H
IDC_EDIT2  EQU   4000H
IDC_EDIT3   EQU   4001
ICO_SMALL    equ 777h
IDB_1     EQU  4002
.data
hInstance dd ?
hWinMain dd ?
hWin1 dd ?
hWin2 dd ?
hWin3 dd ?
szFmt db "mov dword ptr [%s+0%xh],0%x","h",0dh,0ah,0
szhuiche db "0d0a",0
szAdd dd ?

.code
_DLGPROC proc uses ebx ebp edi esi ,hWnd,uMsg,wParam,lParam
        LOCAL @Buu [8]:byte
        LOCAL @szBuffer [256]:byte
        LOCAL @szOut [50]:byte
          LOCAL @stCr:CHARRANGE
        LOCAL @stRect:RECT
       
         
        mov eax,uMsg
        .if eax==WM_COMMAND
                mov eax,wParam
                .if ax==IDC_OK
                mov szAdd,0
                invoke RtlZeroMemory,addr @szBuffer,sizeof @szBuffer
                invoke SendMessage,hWin3,EM_SETSEL,0,-1
                invoke SendMessage,hWin3,EM_REPLACESEL,FALSE,addr @szBuffer
                invoke GetDlgItemText,hWinMain,IDC_EDIT2,addr @Buu,sizeof @Buu
               
                        invoke GetDlgItemText,hWinMain,IDC_EDIT1,addr @szBuffer,sizeof @szBuffer
                        mov ecx,eax
                        lea edx,@szBuffer

                f@@:        mov eax,dword ptr [edx]
                        push edx
                        push ecx
                        invoke wsprintf,addr @szOut,offset szFmt,addr @Buu, szAdd,eax
                          invoke SendMessage,hWin3,EM_REPLACESEL,FALSE,addr @szOut
                          add szAdd,4
                          pop ecx
                          pop edx
                          add edx,4
                          sub ecx,4
                          cmp ecx,0
                         
                          jge f@@
                .endif
        .elseif eax==WM_INITDIALOG
                push hWnd
                pop hWinMain
                invoke GetDlgItem,hWinMain,IDC_EDIT1
                mov hWin1,eax
                invoke GetDlgItem,hWinMain,IDC_EDIT2
                mov hWin2,eax
                invoke GetDlgItem,hWinMain,IDC_EDIT3
                mov hWin3,eax
                invoke LoadIcon,hInstance,ICO_SMALL
                invoke SendMessage,hWinMain,WM_SETICON,ICON_BIG,EAX       
        .elseif eax==WM_CLOSE
                INVOKE EndDialog,hWinMain,NULL
        .else
                mov eax,TRUE
               
               
        .endif
        mov eax,FALSE
       
        ret

_DLGPROC endp
start:

invoke  GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _DLGPROC,NULL
invoke ExitProcess,NULL
end start
2009-7-16 22:14
0
雪    币: 220
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持原创。感谢。
2009-7-16 22:47
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
佩服啊,哪天我也能编程就 好了啊
2009-7-26 07:57
0
雪    币: 546
活跃值: (1667)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
强大。看来汇编功底很强劲呀!
2009-7-26 08:55
0
雪    币: 7872
活跃值: (2607)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢     
2009-7-27 11:42
0
游客
登录 | 注册 方可回帖
返回
//