С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/37: Рейтинг темы: голосов - 37, средняя оценка - 4.78
Заблокирован

Как пользоваться отладчиком OllyDbg на файлах-ЕХЕ для Visual Basic 6.0?

20.09.2015, 22:56. Показов 8196. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Прошу научить пользоваться отладчиком OllyDbg. Имею: Windows 7, 32 Bit.
Скачал почти все книги Касперски — жуть (!), без практики непонятно. Хочу освоить самые простые приёмы.

Интересует возможность получения исходного кода файла-ЕХЕ для Visual Basic 6.0

Подскажите, пожалуйста — насколько правильно? начать со следующих скачиваний:
Download http://www.ollydbg.de/
Download OllyDbg 1.10 (final version)
Download Plugin Development Kit 1.10 (requires OllyDbg 1.10)
Download free source of command line plugin (requires OllyDbg 1.08 or 1.10 and Borland's BCB 5.0)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.09.2015, 22:56
Ответы с готовыми решениями:

Как узнать исходный код файла-ЕХЕ для Visual Basic 6.0?
Здравствуйте! Прошу помощи. Как узнать P-Code? Научите, пожалуйста, пользоваться компиляторами и декомпиляторами. У языка VB6.0...

Как пользоваться отладчиком (в Visual Studio)
Прежде, чем создавать темы типа "Программа вылетает после запуска", "Выводится непонятно что" и т.п. попробуйте воспользоваться...

Как пользоваться отладчиком?
Вот код. В книжке написано: "поставьте точку останова Отладчика на оператор j=i и в цикле работы getline() убедитесь, что переменная j...

29
Заблокирован
22.09.2015, 12:32  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от locm Посмотреть сообщение
Кстати, каков у тебя уровень знаний VB? Такое впечатление что нулевой
Да, нулевой! А как Вы догадались? Всегда писал об этом, не скрывая.

Цитата Сообщение от Willi2001 Посмотреть сообщение
Willi2001... знаком с VB.6.0 всего восемь дней.
А стаж SoftIce по VB.6.0 не менее восьми (!!) лет.
Как перевести красивые картинки с VB.NET на VB.6.0?
Узнал про такой язык в самом конце августа 2015 года. Он очень занимательный и богатый, на примеры.
0
Эксперт по электронике
6524 / 3153 / 332
Регистрация: 28.10.2011
Сообщений: 12,376
Записей в блоге: 7
22.09.2015, 12:52
Тогда сначала нужно подучить VB чтобы хоть немного его понимать. Большинство вопросов станут неактуальными.
1
Заблокирован
22.09.2015, 13:04  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Тогда сначала нужно подучить VB чтобы хоть немного его понимать
locm, спасибо за комичные поучения. Просто фарс.
Все уже догадались, что Вы также не знаете VB6.0. Поэтому беспрестанно льёте воду в тему, как товарищ по несчастью. Рыбак рыбака видит издалека.
0
Эксперт по электронике
6524 / 3153 / 332
Регистрация: 28.10.2011
Сообщений: 12,376
Записей в блоге: 7
22.09.2015, 13:51
Цитата Сообщение от Willi2001 Посмотреть сообщение
Все уже догадались, что Вы также не знаете VB6.0.
Дело не в том знаю или нет (знаю несколько языков, по крайней мере на таком уровне что могу без посторонней помощи портировать с них под на требуемый ЯП).
Дело в другом.
Цитата Сообщение от locm Посмотреть сообщение
3. Заплатить программисту который перепишет код.
Если заплатите за эту работу, чтож, переведу код с PB на VB.
Халявы не будет. Нужно самостоятельно пробовать писать программы, а не просить других.
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
22.09.2015, 14:54
Цитата Сообщение от Willi2001 Посмотреть сообщение
Никто не понимает, как это сделать!
Лично я не понимаю зачем это делать?
Есть код на PureBasic, код рабочий, в свободном доступе. PureBasic более современный ЯП,можно компилировать приложения для x64, и оно будет вычислять ещё быстрее. Какой смысл переписывать его на VB6?
1
Заблокирован
22.09.2015, 15:02  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Дело не в том знаю или нет
locm! А в чём же? Специалисты ведут себя по иному. Долго рассказывать…

Охотно опишу дальнейшие события нашего диалога. Будет запрошена заведомо несуразная цена, например: 10000 — как тактическая уловка! Уже проходили, знаем. И беседа опять станет беспредметной.

Мне грамма не стыдно за попытки разобраться в этом довольно сложном коде. Тот же Никита Однороб затратил более двух лет, даже после хорошей подсказки (_fox_).
По-моему, смогу перевести его код с РВ на VB6.0 — за два дня. Посмотрим, как обойтись без всякой помощи. Иду на принцип!

Конечно, понимаю: специалисту хватит 5-8 минут.
0
Эксперт по электронике
6524 / 3153 / 332
Регистрация: 28.10.2011
Сообщений: 12,376
Записей в блоге: 7
22.09.2015, 15:09
Цитата Сообщение от Willi2001 Посмотреть сообщение
Будет запрошена заведомо несуразная цена, например: 10000
Это много.
1000 рублей хватит.

Цитата Сообщение от Willi2001 Посмотреть сообщение
По-моему, смогу перевести его код с РВ на VB6.0
Вот и замечательно. Заодно получите опыт, а это очень важно в процессе обучения программированию.
0
Заблокирован
24.09.2015, 21:02  [ТС]
Прошу прощения за просрочку. Пытаюсь понять оригинальные и аналогичные решения. Интересно, как всё упростить? Расследую по цепочке авторов
Swetlana (27.03.08, 16:14): Набор заданного веса всеми возможными способами с отсечением повторяющихся решений. Общая схема алгоритма с возвратом.
Кликните здесь для просмотра всего текста
Алгоритмы с возвратом.
Генерация решения в лексикографическом порядке. Отсечение повторяющихся решений
§1. Задача о весах
УСЛОВИЕ. Имеется разновес, причем гиря определенного веса может быть представлена в нескольких экземплярах.
ВОПРОС. Набрать заданный вес всеми возможными способами с точностью до перестановки гирь.
ПРИМЕР. Разновес: 8, 7, 3, 2, 2, 1, 1, 1.
Набрать вес: 10кг.
Разновес удобно хранить в массиве KRATN[1..N], где N – вес самой тяжелой гири и KRATN[g] – количество экземпляров гири веса g.
Решение (набор веса) будем хранить в массиве SOL[1..N], где SOL[g] – количество экземпляров гири веса g в данном наборе.

Применим обычную схему алгоритма с возвратом.
Пусть V – текущий вес, который нужно набрать. Чтобы набрать этот вес, будем перебирать гири разновеса до тех пор, пока не встретим допустимую.
Условие допустимости:
Гиря g – допустима, если она имеется в разновесе, то есть KRATN[g]>0 и ее вес не превышает набираемого веса V, т.е. g≤V.
Пусть такая g найдена, удалим ее из разновеса, то есть KRATN[g]=KRATN[g]-1 и добавим к решению, то есть SOL[g]=SOL[g]+1. Новый текущий набираемый вес V1=V-g. Затем вызываем рекурсию для уменьшенного веса.
Возврат:
Если допустимой гири в разновесе нет или найдено решение, то последнюю добавленную гирю удаляем из решения и добавляем в разновес.
KRATN[g]=KRATN[g]+1; SOL[g]=SOL[g]-1; V=V1+g – текущий набираемый вес.
Затем возвращаемся на цикл перебора гирь разновеса и вместо гири g берем гирю g-1.
При такой схеме алгоритм будет генерировать повторяющиеся решения. Например, вес 10 будет набран как 2+8 и 8+2. Чтобы избавиться от повторов, будем генерировать решения в антиалфавитном порядке. Это означает следующее.
После того, как к решению была добавлена гиря веса g разрешено брать гири веса меньшего либо равного g. Таким образом, будет сгенерировано только решение 8+2.
Алгоритм {задача о весах}
Данные: разновес, представленный массивом KRATN[1…Ves], Ves – набираемый целый положительный вес.
Результат: печать наборов веса Ves без перестановок гирь.
Переменные: Ves, KRATN, SOL – глобальные.
1 procedure nabor (V, g);
{V - набираемый вес, g - вес последней добавленной к решению гири}
2 begin {nabor}
3 for i = g downto 1 do
4 if (KRATN[i]>0) and (i≤V) then
5 begin
6 KRATN[i] = KRATN[i]-1;
7 SOL[i] = SOL[i]+1;
8 V1 = V-i;
9 if V1=0 then печать SOL
10 else nabor(V1, i);
{возврат}
11 KRATN[i] = KRATN[i]+1;
12 SOL[i] = SOL[i]-1;
13 end;
14 end; {nabor}

1 begin {main}
2 инициализация массива KRATN;
3 for j:=1 to Ves do SOL[J]:= 0;
4 nabor(Ves, Ves);
5 end.

Swetlana (28.03.08, 10:51): Вообще-то есть работающая программа на Паскале.


хaron (13.02.2015, 11:52): Подскажите пожалуйста как загнать… суммы по слагаемым?
Кликните здесь для просмотра всего текста
Option Explicit
Function LongSumEl(arr(), sm As Long, Optional ds As Long = 0)
'Функция поиска слагаемых под нужную сумму используя динамическое программирование
'Автор MCH (Михаил Ч.) - июнь 2013

'сумма ищется по целочисленным слагаемым
'в основу взят алгоритм описанный здесь
'http://forum.sources.ru/index.php?showtopic=204375
'Если сумма существует, то она будет найдена

'на входе:
'arr() - одномерный массив с исходными данными
'sm - искомая сумма
'ds - погрешность поиска

'на выходе одномерный массив с результатом, либо значение достигнутой точности

Dim out&(), i&, j&, k&, n&, l&, sm1&
n = sm + ds '
sm1 = sm - ds
If n > 80000000 Or n < 0 Then Exit Function
ReDim a&(n)
For i = 1 To n: a(i) = -1: Next i
For i = 1 To UBound(arr)
For j = n - arr(i) To 0 Step -1
If a(j) >= 0 Then
k = j + arr(i)
If a(k) = -1 Then a(k) = j
If k >= sm1 Then
Do
l = l + 1
ReDim Preserve out&(1 To l)
out(l) = k - a(k)
k = a(k)
Loop While k
LongSumEl = out
Exit Function
End If
End If
Next j, i
For i = sm To 1 Step -1
If a(i) >= 0 Then Exit For
Next i
LongSumEl = sm - i
End Function
0
Заблокирован
27.09.2015, 04:41  [ТС]
Всем спасибо!
Пока руки до OllyDbg (Олька) не дошли. Не волнуйтесь, завтра дойдут.
Многое пытался сделать самостоятельно. К сожалению мало что получилось.

Пытался найти "рациональное зерно" в Декомпиляторе Visual Basic 6.0, используя полную (или платную) версию. Понравилась реальная помощь Декомпилятора. Чуть позже покажу результаты.

Скачал из-за любопытства и Декомпилятор PureBasic: PB DeCompiler v2013.06.30 Free Download http://www.top4download.com/pb... qznbm.html

Интересно, не возникают ли сложности с моим Архивом — ниже?
В тексте кода, ниже — идут вперемешку комментарии SoftIce и Willi2001. Сам код, конечно — SoftIce!
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Option Explicit
 
Private Type typeBrd
    LenB As Long
    CntB As Long
End Type
 
Private Sub Command1_Click()
     Dim arr(), res, ArrB() As typeBrd, k As Long, dL As Long, t0 As Long, tL As Long, st As String
     Dim n As Long, i As Long, j As Long, LB As Long, sum As Long, s As String ', x As Long
     Call GetData(ArrB(), n)
     LB = Val(Text3.Text): List1.Clear: Label2.Visible = True: txtRes.Text = "": txtRes1.Text = "": Command1.Enabled = False: DoEvents
     ' Willi2001 создавал форму почти с нуля Красный Цвет для Табло: Label2.Visible не удалось найти.
     ReDim arr(1 To 1)
     For i = 1 To n
         For j = 1 To ArrB(i).CntB
            k = k + 1
            ReDim Preserve arr(1 To k): arr(k) = ArrB(i).LenB ' Переписываем длины в одномерный массив чтобы скормить функции
         Next j
     Next i
m:   Do
       sum = 0: s = ""
       Call compRes(arr, k)
       res = LongSumEl(arr(), LB, dL)
       If VarType(res) = 8195 Then 'Если функция вернула массив, то
          For i = LBound(res) To UBound(res)
               If res(i) <> 0 Then
                   s = s & res(i) & "   ": sum = sum + res(i)
                   For j = 1 To k 'Убираем из массива использованные элементы
                        If res(i) = arr(j) Then res(i) = 0: arr(j) = 0  '
                   Next j
               End If
          Next i
          Label2.Caption = Val(k / 100): DoEvents
          If sum = 0 Then GoTo m1
          st = st & tL + 1 & "." & vbTab & s & "   Отходы  " & LB - sum & vbCrLf
          t0 = t0 + (LB - sum): tL = tL + 1
       Else
          If sumRes(arr, k) < LB And res <> LB Then
            For j = 1 To k
                  If arr(j) <> 0 Then s = s & arr(j) & "   ": arr(j) = 0
            Next j
            st = st & tL + 1 & "." & vbTab & s & "   Отходы  " & res & vbCrLf
            t0 = t0 + Val(res): tL = tL + 1
            GoTo m1
          End If
          Exit Do
       End If
    Loop
    
    If dL <= maxL(ArrB(), n) Then dL = dL + 5: GoTo m
m1:
    'Вывод результата
     On Error Resume Next
    List1.AddItem " "
    List1.AddItem "Всего потребуется заготовок " & tL
    List1.AddItem "Отходы (всего ) " & t0
    List1.AddItem "Отходы (заготовки, шт) " & Round(t0 / LB, 2)
    List1.AddItem "Отходы (всего, %) " & Round(((t0 / LB) / tL) * 100, 2)
    txtRes.Text = st
    Label2.Visible = False: Command1.Enabled = True: DoEvents
    txtRes1.Text = compStr(st)
    'MsgBox "Всего потребуется досок " & tL & vbCrLf & "Отходы (всего, м) " & t0 & _
             vbCrLf & "Отходы (доски, шт) " & Round(t0 / LB, 2) & _
             vbCrLf & "Отходы (всего, %) " & Round(((t0 / LB) / tL) * 100, 2)
End Sub
Private Function compStr(s As String) As String
    Dim st, i As Long, j As Long, n As Long, tmp1 As String, tmp2 As String, k As Long
    st = Split(s, vbCrLf): n = UBound(st)
    tmp1 = Split(st(0), vbTab)(1)
    k = 1
    For i = 1 To n
        If st(i) <> "" Then
         tmp2 = Split(st(i), vbTab)(1)
         If tmp1 = tmp2 Then
             k = k + 1
         Else
             compStr = compStr & k & " раз " & vbTab & tmp1 & vbCrLf
             k = 1
             If st(i) <> "" Then tmp1 = Split(st(i), vbTab)(1)
         End If
        End If
    Next i
    compStr = compStr & k & " раз " & vbTab & tmp1 & vbCrLf
End Function
Private Sub compRes(res, n As Long)
    Dim a() As Variant, i As Long, k As Long
    ReDim a(1 To 1)
    For i = 1 To n
        If res(i) <> 0 Then k = k + 1: ReDim Preserve a(1 To k): a(k) = res(i)
    Next i
    res = a: n = k
End Sub
Private Function sumRes(a(), n As Long) As Long
    Dim i As Long
    For i = 1 To n
        sumRes = sumRes + a(i)
    Next i
End Function
Private Function maxL(ArrB() As typeBrd, n) As Long
    Dim i As Long: maxL = ArrB(1).LenB
    For i = 1 To n
        If ArrB(i).LenB > maxL And ArrB(i).CntB > 0 Then maxL = ArrB(i).LenB
    Next i
End Function
Private Sub GetData(ArrB() As typeBrd, n As Long)
     n = 5 ' Willi2001 пытался сделать n = 6 (для шести видов) деталей, пока не удалось.
     ReDim ArrB(1 To n)
     Dim i As Long
     For i = 1 To n
         ArrB(i).LenB = Val(Text1(i - 1).Text)
         ArrB(i).CntB = Val(Text2(i - 1).Text)
     Next i
End Sub
 
'Функция не моя(не SoftIce), нашел на просторах интернета
Function LongSumEl(arr(), sm As Long, Optional ds As Long = 0)
 
    Dim out&(), i&, j&, k&, n&, L&, sm1&
    
    n = sm ' + ds 'вот здесь я поправил
    sm1 = sm - ds
    
    If n > 80000000 Or n < 0 Then Exit Function
    ReDim a&(n)
    ' Willi2001 пытался сделать для двух типов исходных заготовок, пока не удалось.
    For i = 1 To n: a(i) = -1: Next i
    For i = 1 To UBound(arr)
        For j = n - arr(i) To 0 Step -1
            If a(j) >= 0 Then
                k = j + arr(i)
                If a(k) = -1 Then a(k) = j
                If k >= sm1 Then
                    Do
                        L = L + 1
                        ReDim Preserve out&(1 To L)
                        out(L) = k - a(k)
                        k = a(k)
                    Loop While k
                    LongSumEl = out
                    Exit Function
                End If
            End If
    Next j, i
    For i = sm To 1 Step -1
        If a(i) >= 0 Then Exit For
    Next i
    LongSumEl = sm - i
End Function
Миниатюры
Как пользоваться отладчиком OllyDbg на файлах-ЕХЕ для Visual Basic 6.0?  
Вложения
Тип файла: rar Архив.rar (3.3 Кб, 9 просмотров)
0
Заблокирован
27.09.2015, 12:24  [ТС]
Почему мой Архив, пост выше — никто не скачивает, он ведь абсолютно безопасный?!
Кликните здесь для просмотра всего текста
SHA256: 2d51e7566b523cd3f28437850608d5efb50e979e 08954dcc9a1214c5827b829e
Имя файла: Архив.rar
Показатель выявления: 0 / 56
Дата анализа: 2015-09-27 02:01:23 UTC https://www.virustotal.com/ru/... 443319283/


Подскажите, пожалуйста, что делать с "добром Ольки"?
Скачал полный набор аксессуаров OllyDbg 2.01 http://www.ollydbg.de/
1) OllyDbg — 6.7 Мб (уже распаковал архив и запустил в работу, картинка ниже)
2) empty language file — 60 Кб (архив)
3) chicken language file — 74 Кб (архив)
4) Disassembler 2.01 — 113 Кб (архив)
Насколько нужны архивы по пунктам 2-4 выше? Что с ними делать?

Ещё, для интереса, на другом сайте скачал простую вещь — M Exe Editor 2.1.0 Revision (232 Кб — файл ЕХЕ). Кто с ним работал? Какие особенности?
Миниатюры
Как пользоваться отладчиком OllyDbg на файлах-ЕХЕ для Visual Basic 6.0?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2015, 12:24
Помогаю со студенческими работами здесь

Как пользоваться отладчиком?
Дайте ссылку на хороший материал или литературу

Как пользоваться отладчиком
Отладка программ Что такое отладка? Какие существуют виды ошибок? Пошаговый прогон: какая разница между F4, F7 и F8? Выполнение:...

Как пользоваться отладчиком bochs
.386p rmcode segment para public 'CODE' use16 assume cs:rmcode, ds:rmcode, ss:rmstack ...

Как пользоваться отладчиком в Lazarus?
Вобщеем, уже неделю мучаюсь со своим проектом, никак не могу избавиться от навязчивой ошибки External:SIGSERV, и, что самое обидное, я...

Ошибка в коде. Как пользоваться отладчиком?
Ошибка отображена в прикрепленном вложении.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru