Конфигуратор(Билдер)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ZeTRiX
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 30.03.2008 (Вс) 0:34

Конфигуратор(Билдер)

Сообщение ZeTRiX » 30.03.2008 (Вс) 2:14

Привет всем :) !
Уже весь инет блин облазил немогу найти. нужно сделать конфигуратор программы. тоесть программа 1 создает программу 2 (с указанными параметрами в проге 1)
Подобно к билдерам троянов.
я делал двумя способами но оба неудачны :
1). создавал прогу 2 потом прогой 1 открывал ее в Binary искал значение и изменял
Код: Выделить всё
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
s = Replace(s, StrConv("xxxxxxxxx", vbUnicode), _
StrConv(txt1, vbUnicode))
Put 1, 1, s
Close 1

тоесть ищет xxxxxxxxx и изменяет. но проблема в том что есле длинна не совпадает то уже программа не запуститься.
и второй способ
2). делал также компилил погу 2 редактором ресурсов вшивал ее в прогу 1. добавлял в обе проги ResString с одинаковым значением.
в проге 1 по нажатию на command1:
Код: Выделить всё
  Dim arrData() As Byte
  arrData = LoadResData(101, "CUSTOM")
  Open "c:\1.exe" For Binary Access Write As #1
    Put #1, , arrData
  Close
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
s = Replace(s, StrConv(LoadResString(101), vbUnicode), _
StrConv(txt1, vbUnicode))
Put 1, 1, s
Close 1

т.к. значение LoadResString(101) у обоих exe одинаково то первая прога заменяет его во второй (заменяет тем текстом что в Text1.Text) и все ок.. есле текст(в Text1.Text) меньше чем тот что в ResString(101) то прога работает а есле больше то тоже пашет :) только укорачиваеться до длинны ResString(101).. (блин ну я и обясняю аж сам запутался :) )
ну короче во втором способе все пашет на ура только одно НО! мне нужно изменить не один параметр а 4. а оно нормально работает только с одним :(
Например так как показано в примере 2 работает а есле я делаю так то уже нет :
Код: Выделить всё
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1
s = Space(LOF(1))
Get 1, , s
txt1 = Text1
txt1 = Text2
txt1 = Text3
txt1 = Text4
s = Replace(s, StrConv(LoadResString(101), vbUnicode), _
StrConv(txt1, vbUnicode))
s = Replace(s, StrConv(LoadResString(102), vbUnicode), _
StrConv(txt2, vbUnicode))
s = Replace(s, StrConv(LoadResString(103), vbUnicode), _
StrConv(txt3, vbUnicode))
s = Replace(s, StrConv(LoadResString(104), vbUnicode), _
StrConv(txt4, vbUnicode))
Put 1, 1, s
Close 1

тоже трабла с длинной получаеться. а именно : когда текст в Text1.Text меньше чем в ResString то в LoadResString(101) смещаеться значения с LoadResString(102) а в LoadResString(102) значения с LoadResString(103) и LoadResString(104) Not Found.. короче муть какаято =)
Подскажите как сделать конфигуратор ))

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.03.2008 (Вс) 11:52

У меня даже где-то был по этому поводу экспресс-пост.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ZeTRiX
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 30.03.2008 (Вс) 0:34

Сообщение ZeTRiX » 30.03.2008 (Вс) 12:02

У меня даже где-то был по этому поводу экспресс-пост.

Форум облазил ненашел, может я не так в поиске ключевые слова указываю. :)

ZeTRiX
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 30.03.2008 (Вс) 0:34

Сообщение ZeTRiX » 30.03.2008 (Вс) 15:19

Блин чет я вообще недоганяю. неужели не кто не знает ? :( третий форум на котором постю этот вопрос и 2 поисковика обклацал уже =)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.03.2008 (Вс) 15:43

ZeTRiX
Все знают.

1) Это крайне тупо - предполагать, что если в EXE файле заменить "xxxx" на "yyy" (или на "yyyyyyyyyyyyy") - то после этого будет работать.

Делать такие глупости может только человек, не имеющий ни малейшего представления о том, какой формат имеет EXE файлы и каким образом там хранятся данные (и какие данные там вообще хранятся).

В принципе нет ничего страшно в том, что человек не знает этого. Но вот вопрос: если человек не знает этого, какого фига он лезет модифицировать EXE файлы?

Если уж так хочется модифицировать кусок в секции данных, надо оставшееся место паддить нулями.

2)

делал также компилил погу 2 редактором ресурсов вшивал ее в прогу 1.

Орфография и знаки препинания рулят.

...
...
...
Почитал немного твой рассказ дальше. Честно говоря, неприятно читать. Стиль изложения, ошибки, сумбурность.

...

Ох, какой тяжелый случай, а.

...

Прокомментирую код
Код: Выделить всё
Dim arrData() As Byte
  arrData = LoadResData(101, "CUSTOM")
  Open "c:\1.exe" For Binary Access Write As #1            ' Почему здесь C:\
    Put #1, , arrData
  Close
Dim s$
Open App.Path & "\" & "1.exe" For Binary As 1              ' А здесь App.Path? Что за файл ты открываешь?
s = Space(LOF(1))                                          ' Если ты исплользуешь s$,
Get 1, , s                                                 ' так используй s$, а не s.
txt1 = Text1                                               ' Что такое txt1? Откуда оно взялось?
s = Replace(s, StrConv(LoadResString(101), vbUnicode), _   
StrConv(txt1, vbUnicode))
Put 1, 1, s
Close 1


Конкретно сам код бредов и непонятнен.


Заменять что бы то ни было в EXE файле реплэйсом - это просто невероятно жутко.

...

Прочитал третий код. Принял валерьянки. Ффух...

Это вообще что-то страшное. НЕЛЬЗЯ ПРАВИТЬ НИЧЕГО В EXE-файле НЕ ПОНИМАЯ ДОСКАНАЛЬНО, КАК ОН УСТРОЕН.


Подскажите как сделать конфигуратор ))

1. Есть 1000 способов. Но точно не так, как пытаешься сделать ты.
2. Учитывая твоё положение, смайлы )) неуместы. Более уместны смайлы :cry: :cry:
3. То, что называешь конфигуратором, повторяю, можно сделать тысячами способов. Все эти способы можно придумать самому - достаточно лишь знать PE-формат. Изучай.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ZeTRiX
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 30.03.2008 (Вс) 0:34

Сообщение ZeTRiX » 30.03.2008 (Вс) 16:08

Хакер
Ну извини, писал в 2 часа ночи (см дату), спать хотел – исправлюсь :)
Дай ссылку, если не затруднит, на свой экспресс-пост. Рылся в поиске – не нашел нечего.
Или приведи, пожалуйста, один примерчик

1. Есть 1000 способов. Но точно не так, как пытаешься сделать ты.


Нашел только такую инфу, других способов не нашел.

2. Учитывая твоё положение, смайлы )) неуместы. Более уместны смайлы


Может ты и прав, но все же..

3. То, что называешь конфигуратором, повторяю, можно сделать тысячами способов. Все эти способы можно придумать самому - достаточно лишь знать PE-формат.

Может все таки приведешь пример ?

Изучай.

Как только так сразу :)

VB только начал изучать, да и вообще, языки программирование. Так что извините за корявые коды

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.03.2008 (Вс) 16:12

Нашел только такую инфу, других способов не нашел.

Не надо ничего искать. Способ придымывается находу. Если знаешь PE-формат. Ты его не знаешь. Учи.

VB только начал изучать, да и вообще, языки программирование. Так что извините за корявые коды

Тогда соотвественно вообще лучше не братсья за подобные задачи.

Примеры писать сейчас некогда. Хорошие примеры модификации PE-файлов можно найти здесь. Только поймёшь ли.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 82

    TopList