Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. include \masm32\include\masm32rt.inc
  2.  
  3. IDD_DIALOG1  =  100
  4. ID_LTEXT = 101
  5. IDC_EDIT1 = 102
  6. IDC_EDIT2 = 103
  7. IDC_BUTTON2 =  104
  8. IDC_PB_AKCJA =  105
  9. IDC_PB_OK =  106
  10.  
  11. .data?
  12. hInstance dd ?
  13. fSize dd ?
  14. hFile dd ?
  15. hBuff dd ?
  16. readBytes dd ?
  17. tmpV dd ?
  18.  
  19. .data
  20. buff1 db 65 dup(NULL)
  21. txt2 db "Blad otwarcia pliku.", NULL
  22. txt3 db "Blad odczytu pliku.", NULL
  23. txt4 db "Blad alokacji pamieci.", NULL
  24.  
  25. .code
  26.  DlgProc proc hDlg,uMsg,wParam,lParam:DWORD
  27.  pushad
  28.  .IF uMsg==WM_CLOSE
  29.  INVOKE EndDialog,hDlg,0
  30.  .ELSEIF uMsg==WM_COMMAND
  31.  
  32.     .IF wParam==IDC_BUTTON2
  33.     INVOKE EndDialog,hDlg,0
  34.  
  35.    
  36.     .ELSEIF wParam==IDC_PB_AKCJA
  37.         INVOKE GetDlgItemText, hDlg, IDC_EDIT1, OFFSET buff1, SIZEOF buff1
  38.        
  39.          INVOKE CreateFile, OFFSET buff1, GENERIC_READ, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,0
  40.         mov hFile, eax
  41.  
  42.         .IF eax==INVALID_HANDLE_VALUE    
  43.         INVOKE lstrlen, OFFSET txt2
  44.         INVOKE WriteConsole, hInstance, OFFSET txt2, eax,ADDR tmpV, NULL
  45.         .ENDIF
  46.  
  47.         INVOKE GetFileSize,hFile,0
  48.         mov fSize, eax
  49.  
  50.         INVOKE VirtualAlloc,0,eax,MEM_COMMIT,PAGE_READWRITE    
  51.         .IF eax == NULL
  52.         INVOKE lstrlen, OFFSET txt4
  53.         INVOKE WriteConsole, hInstance,OFFSET txt4, eax,OFFSET tmpV, NULL          
  54.         .ELSE
  55.         mov hBuff, eax
  56.         INVOKE ReadFile, hFile, eax, fSize, OFFSET readBytes, 0
  57.  
  58.         .IF eax == -1
  59.             INVOKE lstrlen, OFFSET txt3
  60.             INVOKE WriteConsole, hInstance,OFFSET txt3, eax,ADDR tmpV, NULL    
  61.         .ELSE      
  62.                
  63.         INVOKE SetDlgItemText, hDlg, IDC_EDIT2, hBuff    
  64.    
  65.     .ENDIF
  66.        
  67.     .ENDIF
  68.  
  69.     INVOKE VirtualFree,eax,OFFSET fSize,MEM_RELEASE  
  70.     INVOKE CloseHandle, hFile
  71.  
  72.  
  73.         .ELSEIF wParam==IDC_PB_OK
  74.         INVOKE GetDlgItemText, hDlg, IDC_EDIT1, OFFSET buff1, SIZEOF buff1
  75.        
  76.          INVOKE CreateFile, OFFSET buff1, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
  77.         mov hFile, eax
  78.  
  79.         .IF eax==INVALID_HANDLE_VALUE    
  80.         INVOKE lstrlen, OFFSET txt2
  81.         INVOKE WriteConsole, hInstance, OFFSET txt2, eax,ADDR tmpV, NULL
  82.         .ENDIF
  83.  
  84.         INVOKE GetFileSize,hFile,0
  85.         mov fSize, eax
  86.  
  87.         INVOKE VirtualAlloc,0,eax,MEM_COMMIT,PAGE_READWRITE    
  88.         .IF eax == NULL
  89.         INVOKE lstrlen, OFFSET txt4
  90.         INVOKE WriteConsole, hInstance,OFFSET txt4, eax,OFFSET tmpV, NULL          
  91.         .ELSE
  92.         mov hBuff, eax
  93.         INVOKE GetDlgItemText, hDlg, IDC_EDIT2, OFFSET buff1, SIZEOF buff1
  94.         INVOKE WriteFile, hFile, eax, fSize, OFFSET buff1, 0
  95.  
  96.         .IF eax == -1
  97.             INVOKE lstrlen, OFFSET txt3
  98.             INVOKE WriteConsole, hInstance,OFFSET txt3, eax,ADDR tmpV, NULL    
  99.         .ELSE      
  100.                
  101.        
  102.         .ENDIF
  103.         .ENDIF
  104.         .ENDIF
  105.        
  106.        
  107.  .ENDIF  
  108.  
  109.  
  110.  popad
  111.  xor eax,eax
  112.  ret
  113.  
  114.  DlgProc endp
  115.  Start:
  116.  
  117.  INVOKE GetModuleHandle,NULL
  118.  mov hInstance,eax
  119.  INVOKE DialogBoxParam,hInstance,IDD_DIALOG1,0,ADDR DlgProc,0
  120.  INVOKE ExitProcess,0
  121. END Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement