Advertisement
darkArp

Simple Search&Delete (MarioHS aka darkArp)

Feb 21st, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. global _Z8findfilePc
  2. global main
  3. extern exit                                            
  4. extern chdir                                            
  5. extern strcmp                                          
  6. extern stat                                            
  7. extern remove                                          
  8. extern strstr                                          
  9. extern readdir                                          
  10. extern opendir                                          
  11. extern getcwd                                          
  12. extern _GLOBAL_OFFSET_TABLE_                            
  13. SECTION .text                                      
  14. _Z8findfilePc:
  15.         push    rbp                                    
  16.         mov     rbp, rsp                                
  17.         sub     rsp, 2240                              
  18.         mov     qword [rbp-8B8H], rdi                  
  19.         lea     rax, [rbp-820H]                        
  20.         mov     esi, 2049                              
  21.         mov     rdi, rax                                
  22.         call    getcwd                                  
  23.         test    rax, rax                                
  24.         sete    al                                      
  25.         test    al, al                                  
  26.         jne     ?_007                                  
  27.         lea     rdi, [rel ?_013]                        
  28.         call    opendir                                
  29.         mov     qword [rbp-8H], rax                    
  30.         cmp     qword [rbp-8H], 0                      
  31.         je      ?_008                                  
  32. ?_001:  mov     rax, qword [rbp-8H]                    
  33.         mov     rdi, rax                                
  34.         call    readdir                                
  35.         mov     qword [rbp-10H], rax                    
  36.         cmp     qword [rbp-10H], 0                      
  37.         setne   al                                      
  38.         test    al, al                                  
  39.         je      ?_009                                  
  40.         mov     rax, qword [rbp-10H]                    
  41.         add     rax, 19                                
  42.         test    rax, rax                                
  43.         jz      ?_002                                  
  44.         mov     rax, qword [rbp-10H]                    
  45.         lea     rdx, [rax+13H]                          
  46.         mov     rax, qword [rbp-8B8H]                  
  47.         mov     rsi, rax                                
  48.         mov     rdi, rdx                                
  49.         call    strstr                                  
  50.         test    rax, rax                                
  51.         jz      ?_002                                  
  52.         lea     rdi, [rel ?_014]                        
  53.         call    remove                                  
  54. ?_002:  mov     rax, qword [rbp-10H]                    
  55.         lea     rdx, [rax+13H]                          
  56.         lea     rax, [rbp-8B0H]                        
  57.         mov     rsi, rax                                
  58.         mov     rdi, rdx                                
  59.         call    stat                                    
  60.         cmp     eax, -1                                
  61.         sete    al                                      
  62.         test    al, al                                  
  63.         jne     ?_003                                  
  64.         mov     rax, qword [rbp-10H]                    
  65.         add     rax, 19                                
  66.         lea     rsi, [rel ?_013]                        
  67.         mov     rdi, rax                                
  68.         call    strcmp                                  
  69.         test    eax, eax                                
  70.         je      ?_004                                  
  71.         mov     rax, qword [rbp-10H]                    
  72.         add     rax, 19                                
  73.         lea     rsi, [rel ?_015]                        
  74.         mov     rdi, rax                                
  75.         call    strcmp                                  
  76.         test    eax, eax                                
  77.         jz      ?_005                                  
  78.         mov     eax, dword [rbp-898H]                  
  79.         and     eax, 0F000H                            
  80.         cmp     eax, 16384                              
  81.         jne     ?_001                                  
  82.         mov     rax, qword [rbp-10H]                    
  83.         add     rax, 19                                
  84.         mov     rdi, rax                                
  85.         call    chdir                                  
  86.         cmp     eax, -1                                
  87.         sete    al                                      
  88.         test    al, al                                  
  89.         jnz     ?_006                                  
  90.         mov     rax, qword [rbp-8B8H]                  
  91.         mov     rdi, rax                                
  92.         call    _Z8findfilePc                          
  93.         lea     rdi, [rel ?_015]                        
  94.         call    chdir                                  
  95.         cmp     eax, -1                                
  96.         sete    al                                      
  97.         test    al, al                                  
  98.         je      ?_001                                  
  99.         mov     edi, 1                                  
  100.         call    exit                                    
  101. ?_003:  nop                                            
  102.         jmp     ?_001                                  
  103. ?_004:  nop                                            
  104.         jmp     ?_001                                  
  105. ?_005:  nop                                            
  106.         jmp     ?_001                                  
  107. ?_006:  nop                                            
  108.         jmp     ?_001                                  
  109. ?_007:  nop                                            
  110.         jmp     ?_009                                  
  111. ?_008:  nop                                            
  112. ?_009:  leave                                          
  113.         ret                                            
  114.  
  115. main:  
  116.         push    rbp                                    
  117.         mov     rbp, rsp                                
  118.         sub     rsp, 176                                
  119.         mov     dword [rbp-0A4H], edi                  
  120.         mov     qword [rbp-0B0H], rsi                  
  121.         lea     rax, [rel ?_016]                        
  122.         mov     qword [rbp-8H], rax                    
  123.         lea     rax, [rel ?_014]                        
  124.         mov     qword [rbp-10H], rax                    
  125.         lea     rdx, [rbp-0A0H]                        
  126.         mov     rax, qword [rbp-8H]                    
  127.         mov     rsi, rdx                                
  128.         mov     rdi, rax                                
  129.         call    stat                                    
  130.         cmp     eax, -1                                
  131.         sete    al                                      
  132.         test    al, al                                  
  133.         jz      ?_010                                  
  134.         mov     edi, 1                                  
  135.         call    exit                                    
  136. ?_010:  mov     eax, dword [rbp-88H]                    
  137.         and     eax, 0F000H                            
  138.         cmp     eax, 16384                              
  139.         jz      ?_011                                  
  140.         mov     edi, 1                                  
  141.         call    exit                                    
  142. ?_011:  mov     rax, qword [rbp-8H]                    
  143.         mov     rdi, rax                                
  144.         call    chdir                                  
  145.         cmp     eax, -1                                
  146.         sete    al                                      
  147.         test    al, al                                  
  148.         jz      ?_012                                  
  149.         mov     edi, 1                                  
  150.         call    exit                                    
  151. ?_012:  mov     rax, qword [rbp-10H]                    
  152.         mov     rdi, rax                                
  153.         call    _Z8findfilePc                          
  154.         mov     eax, 0                                  
  155.         leave                                          
  156.         ret                                            
  157.  
  158. SECTION .data                                  
  159. SECTION .bss                                   
  160. SECTION .rodata                                
  161. ?_013:                                                  
  162.         db 2EH, 00H                                    
  163. ?_014:                                                  
  164.         db 69H, 6DH, 70H, 6FH, 72H, 74H, 61H, 6EH      
  165.         db 74H, 2EH, 74H, 78H, 74H, 00H                
  166. ?_015:                                                  
  167.         db 2EH, 2EH, 00H, 00H, 00H, 00H, 00H, 00H      
  168. ?_016:                                                  
  169.         db 43H, 3AH, 5CH, 55H, 73H, 65H, 72H, 73H      
  170.         db 5CH, 6DH, 61H, 72H, 69H, 6FH, 5CH, 44H      
  171.         db 6FH, 63H, 75H, 6DH, 65H, 6EH, 74H, 73H      
  172.         db 5CH, 74H, 65H, 73H, 74H, 5CH, 00H            
  173. SECTION .eh_frame                                      
  174.         db 14H, 00H, 00H, 00H, 00H, 00H, 00H, 00H      
  175.         db 01H, 7AH, 52H, 00H, 01H, 78H, 10H, 01H      
  176.         db 1BH, 0CH, 07H, 08H, 90H, 01H, 00H, 00H      
  177.         db 1CH, 00H, 00H, 00H, 1CH, 00H, 00H, 00H      
  178.         dd _Z8findfilePc-$-20H                          
  179.         dd 0000018AH, 100E4100H                        
  180.         dd 0D430286H, 01850306H                        
  181.         dd 0008070CH, 0000001CH                        
  182.         dd 0000003CH                                    
  183.         dd _Z8findfilePc-$+14AH                        
  184.         dd 000000A7H, 100E4100H                        
  185.         dd 0D430286H, 0CA20206H                        
  186.         dd 00000807H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement