Заблокирован

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

20.09.2015, 22:56. Показов 8352. Ответов 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
Эксперт по электронике
6864 / 3287 / 340
Регистрация: 28.10.2011
Сообщений: 12,860
Записей в блоге: 7
22.09.2015, 12:52
Тогда сначала нужно подучить VB чтобы хоть немного его понимать. Большинство вопросов станут неактуальными.
1
Заблокирован
22.09.2015, 13:04  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Тогда сначала нужно подучить VB чтобы хоть немного его понимать
locm, спасибо за комичные поучения. Просто фарс.
Все уже догадались, что Вы также не знаете VB6.0. Поэтому беспрестанно льёте воду в тему, как товарищ по несчастью. Рыбак рыбака видит издалека.
0
Эксперт по электронике
6864 / 3287 / 340
Регистрация: 28.10.2011
Сообщений: 12,860
Записей в блоге: 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
Эксперт по электронике
6864 / 3287 / 340
Регистрация: 28.10.2011
Сообщений: 12,860
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru