tyomitch писал(а):Да запросто.
Файл лежит в папке Program Files, у пользователя нет прав админа.
Пойдёт?
AjaxVS писал(а):>>Файл лежит в папке Program Files, у пользователя нет прав админа.
Во-первых, тогда как ты представляешь себе изменение экзешника вообще любыми способами?
AjaxVS писал(а):Во-вторых, функция GetTempPath нам тоже не известна?
AjaxVS писал(а):насчет анекдота.. Думаешь, будет лучше, если я создам рядом топик "как изменить экзешник, не выдвигая абсурдные требования"? +_+
Dex писал(а):Кто скачал скажите работает у вас?
не правда. Get\SaveSetting сохранаяет настройки в реестре.А с другой стороны, хотел бы упомянуть такой момент, как GetSetting - никто не забыл про эту вещь ?? - ведь настройки окна запоминаются в самом exe
ANDLL писал(а):не правда. Get\SaveSetting сохранаяет настройки в реестре.А с другой стороны, хотел бы упомянуть такой момент, как GetSetting - никто не забыл про эту вещь ?? - ведь настройки окна запоминаются в самом exe
VERITAS писал(а):Ладно, тронемся в другую сторону. А как же Ассемблер( ну конечно его сравнивать с VB безсмыслено), но все же в Ассемблере такую фичу как дописывание, и переписывание самой себя осуществляет ведь. Главное знать начальный адресс и длину программы, а дальше дело за несложным ???
Dim zf1 As String, zf2 As String
Private Sub Form_Load()
Timer1.Enabled = False: Timer2.Enabled = False: Me.Visible = False
Text1.Text = "********************"
zf1 = App.Path & "\1.exe": zf2 = App.Path & "\2.exe"
Select Case Command$
Case "": FileCopy zf1, zf2: Timer1.Enabled = True
Case "2": Me.Visible = True
Case "3": Timer2.Enabled = True
Case Else
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim i%, n%, st$, s As String * 1
st = Left(Text1.Text, 20): n = &H1B64&
Open zf1 For Random As #1 Len = Len(s)
For i = 1 To Len(st): s = Mid(st, i, 1)
Put #1, n + 2 * i - 1, s
Next: Close #1
Shell zf1 & " 3", vbNormalFocus: End
End Sub
Private Sub Timer1_Timer()
Shell zf2 & " 2", vbNormalFocus: Timer1.Enabled = False: End
End Sub
Private Sub Timer2_Timer()
Kill zf2: Timer1.Enabled = False: End
End Sub
tyomitch писал(а):Ещё один слышавший звон?
dseg segment
file_name DB 'My.exe'', 0
Fin equ $
dseg segment
cseg segment
assume cs:cseg, ds:dseg
org 100h
begin:
; открытие файла
LEA dx, file_name
call open_file
jc error_file
mov bx, ax
; чтение файла
mov ah, 3fh
; загрузка длины файла
mov cx, Fin-100h
mov dx, begin
int 21h
call close_file
jmp en
error_file:
mov ah, 2
mov dl, 7
int 21h
en: mov ah, 4ch
int 21h
open_file PROC
cmp bx, 0FFFFh
jne quit_prog
mov ax, 3d00h
int 21h
mov bx, ax
ret
quit prog: stc
ret
mov bx, 0FFFFh
open_file endp
close_file proc
mov ah, 3eh
int 21h
ret
close_file endp
cseg segment
end bigin
; данная программа откроет сому себя, т.е. "My.exe"
; и разместится в памяти на то место, куда была только что загружена
AjaxVS писал(а):кинул WriteInMe в Program Files...
После нажатия "Записать" образуется 4 файла и прога, выдав привычную ошибку 75, закрывается..
Как и раньше..
В общем, ты прав, исходники такого нафиг никому не нужны +_+
ЗЫ. А Kovu пошутил, наверно..
filecopy
VERITAS писал(а):2tyomitch: а почему не работают ? Просто объясни мне пожайлуста, чтобы знать в чем причина, и главным образом это защита Windows или же что-то другое ?
2tyomitch: а почему не работают ? Просто объясни мне пожайлуста, чтобы знать в чем причина, и главным образом это защита Windows или же что-то другое ?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83