-
-
[求助]求指导
-
发表于: 2014-4-20 10:58 2627
-
.text:0040120A mov edx, dword ptr ds:aWinsun_pvf ; "\\winsun.pvf"
.text:00401210 mov ecx, dword ptr ds:aWinsun_pvf+4
.text:00401216 mov [eax], edx
.text:00401218 mov edx, dword ptr ds:aWinsun_pvf+8
.text:0040121E mov [eax+4], ecx
.text:00401221 mov [eax+8], edx ; 复制字符串
.text:00401224 lea eax, [esp+0Ch] ; 局部变量地址
.text:00401228 push eax ; 压栈参数
.text:00401229 call sub_4023B0 ; 调用call
.text:0040122E push 104h ; 清空长度,应该也是大小
.text:00401233 lea ecx, [esp+14h] ; 取得局部变量的地址
.text:00401237 push 0 ; 清空开始的位置
.text:00401239 push ecx ; 压栈局部变量
.text:0040123A call memset ; 清空字符串
.text:0040123F add esp, 10h ; 抬高堆栈栈是往低地址成长的,这里是释放这个空间换取栈平衡
.text:00401242 lea edx, [esp+0Ch] ; 取得局部变量地址
.text:00401246 push edx ; 压栈参数
.text:00401247 push 104h ; 压栈长度
.text:0040124C call esi ; GetCurrentDirectoryA ; 拷贝当前进程目录到字符串空间
.text:0040124E lea edi, [esp+0Ch] ; 取得地址
.text:00401252 add edi, 0FFFFFFFFh ; 0FFFFFFFFh=-1的补码,意思是局部变量的地址-1 和下面的加1对应
.text:00401255
.text:00401255 loc_401255: ; CODE XREF: .text:0040125Dj
.text:00401255 mov al, [edi+1]
.text:00401258 add edi, 1
.text:0040125B test al, al
.text:0040125D jnz short loc_401255 ; 循环遍历字符串到以0结尾的字符
.text:0040125F mov ecx, 7
.text:00401264 mov esi, offset aResourceUiProg ; "\\Resource\\ui\\progressvalue.dat"
.text:00401269 rep movsd
.text:0040126B movsw ; 复制字符串到局部变量
.text:0040126D lea eax, [esp+0Ch] ; 取得局部变量地址
.text:00401271 push offset aRb ; ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。压栈参数rbz+
.text:00401276 push eax ; 目录
.text:00401277 movsb
.text:00401278 call ds:fopen ; 打开一个文件
.text:0040127E mov esi, eax
.text:00401280 add esp, 8
.text:00401283 test esi, esi
.text:00401285 jz loc_40136C ; 判断打开是否成功
求指正,新手
.text:00401210 mov ecx, dword ptr ds:aWinsun_pvf+4
.text:00401216 mov [eax], edx
.text:00401218 mov edx, dword ptr ds:aWinsun_pvf+8
.text:0040121E mov [eax+4], ecx
.text:00401221 mov [eax+8], edx ; 复制字符串
.text:00401224 lea eax, [esp+0Ch] ; 局部变量地址
.text:00401228 push eax ; 压栈参数
.text:00401229 call sub_4023B0 ; 调用call
.text:0040122E push 104h ; 清空长度,应该也是大小
.text:00401233 lea ecx, [esp+14h] ; 取得局部变量的地址
.text:00401237 push 0 ; 清空开始的位置
.text:00401239 push ecx ; 压栈局部变量
.text:0040123A call memset ; 清空字符串
.text:0040123F add esp, 10h ; 抬高堆栈栈是往低地址成长的,这里是释放这个空间换取栈平衡
.text:00401242 lea edx, [esp+0Ch] ; 取得局部变量地址
.text:00401246 push edx ; 压栈参数
.text:00401247 push 104h ; 压栈长度
.text:0040124C call esi ; GetCurrentDirectoryA ; 拷贝当前进程目录到字符串空间
.text:0040124E lea edi, [esp+0Ch] ; 取得地址
.text:00401252 add edi, 0FFFFFFFFh ; 0FFFFFFFFh=-1的补码,意思是局部变量的地址-1 和下面的加1对应
.text:00401255
.text:00401255 loc_401255: ; CODE XREF: .text:0040125Dj
.text:00401255 mov al, [edi+1]
.text:00401258 add edi, 1
.text:0040125B test al, al
.text:0040125D jnz short loc_401255 ; 循环遍历字符串到以0结尾的字符
.text:0040125F mov ecx, 7
.text:00401264 mov esi, offset aResourceUiProg ; "\\Resource\\ui\\progressvalue.dat"
.text:00401269 rep movsd
.text:0040126B movsw ; 复制字符串到局部变量
.text:0040126D lea eax, [esp+0Ch] ; 取得局部变量地址
.text:00401271 push offset aRb ; ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。压栈参数rbz+
.text:00401276 push eax ; 目录
.text:00401277 movsb
.text:00401278 call ds:fopen ; 打开一个文件
.text:0040127E mov esi, eax
.text:00401280 add esp, 8
.text:00401283 test esi, esi
.text:00401285 jz loc_40136C ; 判断打开是否成功
求指正,新手
赞赏
赞赏
雪币:
留言: