Переименовать себя

Тема в разделе "WASM.WIN32", создана пользователем vg, 18 янв 2009.

  1. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Можно ли переименовать себя, т. е. запущенный exe-файл из него самого?
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
  3. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Если функцию в API вызвать в глубине. Мимо проверок ) Слишком просто не получится...
     
  4. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Aspire развёрнутый ответ=).
     
  5. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Не думал об этом, но может подойдет: SHFileOperation
     
  6. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Чего вы мудрите, какая еще глубина проверок, все прекрасно переименовывается.
     
  7. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Aspire
    K10
    Как? Как предложил dgs?
     
  8. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    vg
    Код (Text):
    1. MoveFile(PChar(Application.ExeName), 'new.exe');
     
  9. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Не могу понять почему не работает следующий код - не переименовывается найденный файл.
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap :none   ; case sensitive
    4.  
    5. include \masm32\include\windows.inc
    6. include \masm32\include\user32.inc
    7. include \masm32\include\kernel32.inc
    8.  
    9. includelib \masm32\lib\user32.lib
    10. includelib \masm32\lib\kernel32.lib
    11.  
    12.  
    13. .data?
    14.     wfd             WIN32_FIND_DATA <>
    15.     hfind           DWORD ?
    16.     victim_filename db 256 dup(?)
    17. .code
    18.  
    19. start:
    20.  
    21. jmp @F
    22.     searchfilter db "*.exe",0
    23.     plus         db "_",0
    24. @@:
    25.  
    26.     push offset wfd
    27.     push offset searchfilter
    28.     call FindFirstFile
    29.     cmp eax,INVALID_HANDLE_VALUE
    30.     jz stopsearch
    31.  
    32.     push offset wfd.cFileName
    33.     push offset victim_filename
    34.     call lstrcpy
    35.     push offset plus
    36.     push offset victim_filename
    37.     call lstrcat
    38.     push offset wfd.cFileName
    39.     push offset victim_filename
    40.     call MoveFile
    41.     push hfind
    42.     call FindClose
    43. stopsearch:
    44.  
    45.     push 0
    46.     call ExitProcess
    47.  
    48. end start
     
  10. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    vg
     
  11. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    в 9х нет