Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: Прога пишет в себя. Добавлено: 03.08.04 03:49  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 
 Может кто уже нашёл способ?
 А может он и был, просто я не знал :)

Ответить

  Ответы Всего ответов: 77  

Номер ответа: 1
Автор ответа:
 Eddie



Вопросов: 11
Ответов: 120
 Профиль | | #1 Добавлено: 03.08.04 10:56
 Моя Теория: Подгружает другой Фил, Другой Фил Записывает в другого "Себя" то что нужно и всего делов d:)
 2- Открыть самого Ся Двоичным способом и Записать то что Нужно и Сохранить ...

Зы : не Один из Этих способов я непробовал, просто Теория, Мало ли на какую Мысль я Тебя натолкну d:)

Ответить

Номер ответа: 2
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #2
Добавлено: 03.08.04 11:32
Думаю, надо какой-то автономный патчер в ресурсах, например. Когда нужно что-то записать в себя, извлекаешь патчер, запускаешь его с параметрами. Патчер вырубает прогу, патчит ехе, снова запускает прогу и мирно удаляеться. Что-то типа этого. Но я бы не стал так делать...

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 03.08.04 11:59
Ой, патчеры ресурсы, не находите что все это лишнее ? Предлагаю еще одно ламерское решение:
- Считать свой файл в память
- Найти ту секцию, в которой мы будем делать изменения
- Изменить данные в ней
- Сохранить файл на диск
- Удалить себя и переименовать тот файл что создали...

И никаких ненужных патчей...

А вот чтобы, действительно, так что взял и переписал код в своем файле... это такого способа я не знаю :(

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 03.08.04 15:16
>Думаю, надо какой-то автономный патчер в ресурсах
 Ресурсы даже ламер взломает.

Я здесь недавно читал что запущенный файл удалить нельзя, а вот переименовать можно. Кто то пробовал?

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 03.08.04 15:17
 Переименование не проканало.

Ответить

Номер ответа: 6
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 03.08.04 15:57
Прога запускается и своим процессом пишет в свой файл? Прямого пути явно нет. Даже писать в секцию кода в памяти по умолчанию нельзя. Если же включить воображение, то можно попробовать выйти в ring0, где использовать low-level доступ к винту.

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 03.08.04 16:10
 А вот так получилось. Хотя ещё по мелочи надо доработать. Это правда не дописывание, а убийство файла оригинала, но принцип тот же.

#Compile Exe "KillMe.exe"
#Dim All
#Include "WIN32API.INC"

Function PbMain()
 If Command$="" Then GoTo SkipRmv
 ;Dim ExePath As String, PrevPID As Long
 ExePath=Parse$(Command$,",",1)
 PrevPID=Val(Parse$(Command$,",",2))
 ;Dim y As Long
KillLoop:
 Kill ExePath
 y = Err
 If y>0 Then
    ;Dim PcExit As Long
    GetExitCodeProcess PrevPID,PcExit
    ExitProcess PcExit
    GoTo KillLoop
 End If
 EXITProcess ByVal 0&

SkipRmv:
 ;Dim App_ExeNameZ As Asciiz*255
 GetModuleFileName ByVal 0&,App_ExeNameZ,254
 FileCopy App_ExeNameZ,"Killer.exe"
 ShellExecute 0&,ByVal 0&,"Killer.exe",App_ExeNameZ &"," & Str$(GetCurrentProcess()),"",%SW_SHOWNORMAL
 EXITProcess ByVal 0&
End Function

Ответить

Номер ответа: 8
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #8
Добавлено: 03.08.04 19:12
гм.. интересную тему затронули...
меня тоже когдато волновал этот вопрос...
 CyRax'у респект...

Ответить

Номер ответа: 9
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #9
Добавлено: 07.08.04 05:30
 Жаль только что идей никто не предоставил.

Ответить

Номер ответа: 10
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #10 Добавлено: 07.08.04 16:16
//0
 писать в самого себя на уровне драйвера, и чтоб вобще было зашибись CRC надо тоже патчить, чтоб ни кто не заподозрил что в фаил что то дописали :)
  

Ответить

Номер ответа: 11
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #11 Добавлено: 07.08.04 16:18
можно как говорили в //1, только написать другую под програмульку которой передаются параметры при выходе, и которая дописывает в ехе

Ответить

Номер ответа: 12
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #12 Добавлено: 07.08.04 17:16
Код проги которая инкриментирует в себе щётчик ---


Sub Main()
Dim buf As Byte, bs As String, csum As Long

On Error GoTo 10
  Open App.Path & "\csum" For Input As #1
    Line Input #1, tmp
    csum = Val(tmp)
  Close #1
20:
'''''''''''
Dim cc As Long: cc = 0

  Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1 Len = Len(buf)
  
   ;Do While Not EOF(1)
   
    Get #1, csum + cc, buf
    bs = bs & Chr(buf)
    cc = cc + 1
    
   Loop
   ret = InStr(1, bs, "-";)
   lret = Trim(Right(bs, Len(bs) - ret))
   cnt = Val(lret) + 1
   MsgBox cnt
30:
    Put #1, csum, "TEST - " & cnt
  
  Close #1
  
''''''''''''
Exit Sub

10:
 Close #1
  Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1 Len = Len(buf)
   csum = 0
    ;Do While Not EOF(1)
     Get #1, , buf
     csum = csum + 1
    Loop
  Close #1
  Open App.Path & "\csum" For Output As #1
   Print #1, csum
  Close #1
Resume 20

End Sub

Ответить

Номер ответа: 13
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #13
Добавлено: 08.08.04 00:01
 Ну и чё она делает?
 Запустил, а она в циклит на Msgbox числа 1.
 Пришлось убивать через CAD.

 А рабочего кода нет случайно?

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 08.08.04 04:33
Вариантом было бы создание автопатчера, который писался бы в отдельный ехешник (что патчить можно писать в отдельный текстовый файл) и батника, который бы запускал патчер, ждал завершения его работы, а потом убивал бы его, текстовик, а потом себя.

Ответить

Номер ответа: 15
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #15
Добавлено: 08.08.04 11:16
 А батник где хранить? внутри экзешника? Так его вычислить ничего не стоит. Крякеры отнюдь не идиоты, иначе бы они не взламывали ВСЕ защищённые проги.
 Ну а насчёт того что два экзешника я и сам думал. Только пока не разбирался как один к другому прикреплять.

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам