吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1172|回复: 5
收起左侧

[求助] 请问一个问题关于文件写入三部曲

[复制链接]
player43 发表于 2020-3-26 13:52
00846714    60                    pushad
00846715    9C                    pushfd
00846716    55                    push ebp
00846717    8BEC                  mov ebp,esp
00846719    83EC 20            sub esp,0x20
0084671C    A1 AC638400    mov eax,dword ptr ds:[0x8463AC]   //文件名
00846721    83F8 00             cmp eax,0x0
00846724    74 3E                 je short XZM.00846764
00846726    6A 00                 push 0x0
00846728    6A 00                 push 0x0
0084672A    6A 02                 push 0x2
0084672C    6A 00                 push 0x0
0084672E    6A 00                   push 0x0
00846730    68 00000040        push 0x40000000
00846735    FF35 AC638400    push dword ptr ds:[0x8463AC]   
0084673B    8B45 34                mov eax,dword ptr ss:[ebp+0x34]   //CreateFileA
0084673E    FFD0                     call eax
00846740    83F8 FF                 cmp eax,-0x1
00846743    74 1A                    je short XZM.0084675F
00846745    50                         push eax
00846746    6A 00                    push 0x0
00846748    68 E0638400         push XZM.008463E0
0084674D    FF35 A4638400    push dword ptr ds:[0x8463A4]  //文件长度
00846753    FF35 A0638400    push dword ptr ds:[0x8463A0]  //文件数据
00846759    50                         push eax
0084675A    8B45 30               mov eax,dword ptr ss:[ebp+0x30] //WriteFile
0084675D    FFD0                    call eax
0084675F    8B45 2C               mov eax,dword ptr ss:[ebp+0x2C] //CloseHandle
00846762    FFD0                    call eax
00846764    83C4 20               add esp,0x20
00846767    8BE5                    mov esp,ebp
00846769    5D                       pop ebp                                 
0084676A    9D                       popfd
0084676B    61                        popad
0084676C    C2 0C00               retn 0xC

这是我自己写的一段保存文件的三部曲 请问我这里有什么错误嘛?
我调试一个软件 ,自己patch这一段, 不调用这段功能都正常, 一旦调用这段代码就会C0000005异常退出了。 牛人给分析分析 哪里错了嘛 ,那些API地址我前提都已经找到了 ,保存起来备用的。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

古月不傲 发表于 2020-3-26 14:27
WriteFile多传了一个参数吧
 楼主| player43 发表于 2020-3-26 15:05
WriteFile前面那个参数是CreateFile的文件句柄 我觉得这样下面的closehandle就不用在压入参数了 直接调用就好了 这样不可以嘛?
罗萨 发表于 2020-3-26 18:16
004B90B0  |.  50            PUSH EAX                                                        ; |pBytesWritten
004B90B1  |.  6A 0C         PUSH 0C                                                        ; |nBytesToWrite = C (12.)
004B90B3  |.  8D4424 10     LEA EAX,DWORD PTR SS:[ESP+10]            ; |
004B90B7  |.  50            PUSH EAX                                                         ; |Buffer
004B90B8  |.  8B07          MOV EAX,DWORD PTR DS:[EDI]                    ; |
004B90BA  |.  50            PUSH EAX                                                       ; |hFile
004B90BB  |.  E8 9CDDF4FF   CALL 00406E5C                            ; \WriteFile
罗萨 发表于 2020-3-26 18:18
  0042141A  |.  8D45 10       lea     eax, dword ptr [ebp+10]
  0042141D  |>  6A 00         push    0                                ; /pOverlapped = NULL
  0042141F  |.  50            push    eax                              ; |pBytesWritten
  00421420  |.  FF75 0C       push    dword ptr [ebp+C]                ; |nBytesToWrite
  00421423  |.  FF75 08       push    dword ptr [ebp+8]                ; |Buffer
  00421426  |.  FF31          push    dword ptr [ecx]                  ; |hFile
  00421428  |.  FF15 50724700 call    dword ptr [<&KERNEL32.WriteFile>>; \WriteFile
 楼主| player43 发表于 2020-3-28 10:29
问题解决了 不是这里出现的问题 是因为WriteFile写入数据还未完成 数据指针被释放引起的 多谢各位~ 折腾了几天 小有成就~ 感谢52的大神们
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 10:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表