Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 3

Алгоритм преобразования строки

01.10.2016, 14:03. Показов 1580. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Прилагаю асм-функцию, которая работает со строкой, содержащей e-mail или его часть и каким-то образом его преобразует, мне нужно выяснить как именно она преобразует его. Заранее спасибо.
Assembler
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
.text:00401A40                 push    ebp
.text:00401A41                 mov     ebp, esp
.text:00401A43                 and     esp, 0FFFFFFF8h
.text:00401A46                 sub     esp, 9Ch
.text:00401A4C                 mov     eax, ___security_cookie
.text:00401A51                 xor     eax, esp
.text:00401A53
.text:00401A53 loc_401A53:
.text:00401A53                 mov     [esp+9Ch+var_4], eax
.text:00401A5A                 mov     eax, [ebp+arg_0]
.text:00401A5D                 push    ebx
.text:00401A5E                 push    esi
.text:00401A5F                 mov     esi, ecx
.text:00401A61                 push    edi
.text:00401A62                 mov     [esp+0A8h+var_94], eax
.text:00401A66                 xor     ecx, ecx
.text:00401A68
.text:00401A68 loc_401A68:                             ; CODE XREF: sub_401A40+4Fj
.text:00401A68                 mov     al, [esi+ecx]
.text:00401A6B                 cmp     al, 30h
.text:00401A6D                 jl      short loc_401A73
.text:00401A6F                 cmp     al, 39h
.text:00401A71                 jle     short loc_401A8B
.text:00401A73
.text:00401A73 loc_401A73:                             ; CODE XREF: sub_401A40+2Dj
.text:00401A73                 cmp     al, 41h
.text:00401A75                 jl      short loc_401A7B
.text:00401A77                 cmp     al, 46h
.text:00401A79                 jle     short loc_401A8B
.text:00401A7B
.text:00401A7B loc_401A7B:                             ; CODE XREF: sub_401A40+35j
.text:00401A7B                 cmp     al, 61h
.text:00401A7D                 jl      loc_401CCB
.text:00401A83                 cmp     al, 66h
.text:00401A85                 jg      loc_401CCB
.text:00401A8B
.text:00401A8B loc_401A8B:                             ; CODE XREF: sub_401A40+31j
.text:00401A8B                                         ; sub_401A40+39j
.text:00401A8B                 inc     ecx
.text:00401A8C                 cmp     ecx, 20h
.text:00401A8F                 jl      short loc_401A68
.text:00401A91                 mov     edi, esi
.text:00401A93                 call    sub_401960
.text:00401A98                 mov     ebx, eax
.text:00401A9A                 and     ebx, 0FF0000h
.text:00401AA0                 call    sub_401960
.text:00401AA5                 shr     eax, 10h
.text:00401AA8                 or      ebx, eax
.text:00401AAA                 shr     ebx, 8
.text:00401AAD                 call    sub_401960
.text:00401AB2                 shl     eax, 10h
.text:00401AB5                 mov     [esp+0A8h+var_98], eax
.text:00401AB9                 call    sub_401960
.text:00401ABE                 mov     ecx, [esp+0A8h+var_98]
.text:00401AC2                 and     eax, 0FF00h
.text:00401AC7                 or      ecx, eax
.text:00401AC9                 shl     ecx, 8
.text:00401ACC                 or      ebx, ecx
.text:00401ACE                 lea     edi, [esi+8]
.text:00401AD1                 mov     [esp+0A8h+var_34], ebx
.text:00401AD5                 call    sub_401960
.text:00401ADA                 mov     ebx, eax
.text:00401ADC                 and     ebx, 0FF0000h
.text:00401AE2                 call    sub_401960
.text:00401AE7                 shr     eax, 10h
.text:00401AEA                 or      ebx, eax
.text:00401AEC                 shr     ebx, 8
.text:00401AEF                 call    sub_401960
.text:00401AF4                 shl     eax, 10h
.text:00401AF7                 mov     [esp+0A8h+var_98], eax
.text:00401AFB                 call    sub_401960
.text:00401B00                 mov     ecx, [esp+0A8h+var_98]
.text:00401B04                 and     eax, 0FF00h
.text:00401B09                 or      ecx, eax
.text:00401B0B                 shl     ecx, 8
.text:00401B0E                 or      ebx, ecx
.text:00401B10                 lea     edi, [esi+10h]
.text:00401B13                 mov     [esp+0A8h+var_30], ebx
.text:00401B17                 call    sub_401960
.text:00401B1C                 mov     ebx, eax
.text:00401B1E                 and     ebx, 0FF0000h
.text:00401B24                 call    sub_401960
.text:00401B29                 shr     eax, 10h
.text:00401B2C                 or      ebx, eax
.text:00401B2E                 shr     ebx, 8
.text:00401B31                 call    sub_401960
.text:00401B36                 shl     eax, 10h
.text:00401B39                 mov     [esp+0A8h+var_98], eax
.text:00401B3D                 call    sub_401960
.text:00401B42                 mov     ecx, [esp+0A8h+var_98]
.text:00401B46                 and     eax, 0FF00h
.text:00401B4B                 or      ecx, eax
.text:00401B4D                 shl     ecx, 8
.text:00401B50                 or      ebx, ecx
.text:00401B52                 lea     edi, [esi+18h]
.text:00401B55                 mov     [esp+0A8h+var_2C], ebx
.text:00401B59                 call    sub_401960
.text:00401B5E                 mov     esi, eax
.text:00401B60                 and     esi, 0FF0000h
.text:00401B66                 call    sub_401960
.text:00401B6B                 shr     eax, 10h
.text:00401B6E                 or      esi, eax
.text:00401B70                 shr     esi, 8
.text:00401B73                 call    sub_401960
.text:00401B78                 mov     ebx, eax
.text:00401B7A                 shl     ebx, 10h
.text:00401B7D                 call    sub_401960
.text:00401B82                 mov     edx, [esp+0A8h+var_94]
.text:00401B86                 and     eax, 0FF00h
.text:00401B8B                 or      ebx, eax
.text:00401B8D                 shl     ebx, 8
.text:00401B90                 or      esi, ebx
.text:00401B92                 xor     ebx, ebx
.text:00401B94                 mov     eax, edx
.text:00401B96                 mov     [esp+0A8h+var_28], esi
.text:00401B9D                 mov     [esp+0A8h+var_8C], ebx
.text:00401BA1                 mov     [esp+0A8h+var_90], ebx
.text:00401BA5                 mov     [esp+0A8h+var_88], 67452301h
.text:00401BAD                 mov     [esp+0A8h+var_84], 0EFCDAB89h
.text:00401BB5                 mov     [esp+0A8h+var_80], 98BADCFEh
.text:00401BBD                 mov     [esp+0A8h+var_7C], 10325476h
.text:00401BC5                 lea     esi, [eax+1]
.text:00401BC8
.text:00401BC8 loc_401BC8:                             ; CODE XREF: sub_401A40+18Dj
.text:00401BC8                 mov     cl, [eax]
.text:00401BCA                 inc     eax
.text:00401BCB                 test    cl, cl
.text:00401BCD                 jnz     short loc_401BC8
.text:00401BCF                 sub     eax, esi
.text:00401BD1                 push    edx
.text:00401BD2                 mov     ecx, eax
.text:00401BD4                 lea     esi, [esp+0ACh+var_90]
.text:00401BD8                 call    sub_401700
.text:00401BDD                 add     esp, 4
.text:00401BE0                 lea     edi, [esp+0A8h+var_24]
.text:00401BE7                 mov     ecx, esi
.text:00401BE9                 call    sub_401830
.text:00401BEE                 xor     eax, eax
.text:00401BF0
.text:00401BF0 loc_401BF0:                             ; CODE XREF: sub_401A40+1E6j
.text:00401BF0                 movzx   ecx, [esp+eax+0A8h+var_24]
.text:00401BF8                 movzx   edx, [esp+eax+0A8h+var_23]
.text:00401C00                 xor     byte ptr [esp+eax+0A8h+var_34], cl
.text:00401C04                 xor     byte ptr [esp+eax+0A8h+var_34+1], dl
.text:00401C08                 movzx   ecx, [esp+eax+0A8h+var_22]
.text:00401C10                 movzx   edx, [esp+eax+0A8h+var_21]
.text:00401C18                 xor     byte ptr [esp+eax+0A8h+var_34+2], cl
.text:00401C1C                 xor     byte ptr [esp+eax+0A8h+var_34+3], dl
.text:00401C20                 add     eax, 4
.text:00401C23                 cmp     eax, 10h
.text:00401C26                 jl      short loc_401BF0
.text:00401C28                 mov     eax, offset unk_40CDC0
.text:00401C2D                 lea     ecx, [esp+0A8h+var_14]
.text:00401C34                 sub     eax, ecx
.text:00401C36                 mov     [esp+0A8h+var_98], ebx
.text:00401C3A                 lea     ebx, [esp+0A8h+var_34]
.text:00401C3E                 mov     [esp+0A8h+var_94], eax
.text:00401C42
.text:00401C42 loc_401C42:                             ; CODE XREF: sub_401A40+27Bj
.text:00401C42                 xor     eax, eax
.text:00401C44                 push    ebx
.text:00401C45                 lea     ecx, [eax+3]
.text:00401C48                 lea     esi, [esp+0ACh+var_90]
.text:00401C4C                 mov     [esp+0ACh+var_8C], eax
.text:00401C50                 mov     [esp+0ACh+var_90], eax
.text:00401C54                 mov     [esp+0ACh+var_88], 67452301h
.text:00401C5C                 mov     [esp+0ACh+var_84], 0EFCDAB89h
.text:00401C64                 mov     [esp+0ACh+var_80], 98BADCFEh
.text:00401C6C                 mov     [esp+0ACh+var_7C], 10325476h
.text:00401C74                 call    sub_401700
.text:00401C79                 add     esp, 4
.text:00401C7C                 lea     edi, [esp+0A8h+var_14]
.text:00401C83                 mov     ecx, esi
.text:00401C85                 call    sub_401830
.text:00401C8A                 mov     ecx, 10h
.text:00401C8F                 mov     eax, edi
.text:00401C91
.text:00401C91 loc_401C91:                             ; CODE XREF: sub_401A40+265j
.text:00401C91                 mov     edx, [esp+0A8h+var_94]
.text:00401C95                 mov     edx, [edx+eax]
.text:00401C98                 cmp     edx, [eax]
.text:00401C9A                 jnz     short loc_401CCB
.text:00401C9C                 sub     ecx, 4
.text:00401C9F                 add     eax, 4
.text:00401CA2                 cmp     ecx, 4
.text:00401CA5                 jnb     short loc_401C91
.text:00401CA7                 mov     eax, [esp+0A8h+var_98]
.text:00401CAB                 add     [esp+0A8h+var_94], 10h
.text:00401CB0                 inc     eax
.text:00401CB1                 add     ebx, 3
.text:00401CB4                 mov     [esp+0A8h+var_98], eax
.text:00401CB8                 cmp     eax, 5
.text:00401CBB                 jl      short loc_401C42
.text:00401CBD                 xor     ecx, ecx
.text:00401CBF                 xor     dl, dl
.text:00401CC1                 xor     al, al
.text:00401CC3                 mov     [esp+0A8h+var_9A], cl
.text:00401CC7                 xor     bl, bl
.text:00401CC9                 jmp     short loc_401CE6
.text:00401CCB ; ---------------------------------------------------------------------------
.text:00401CCB
.text:00401CCB loc_401CCB:                             ; CODE XREF: sub_401A40+3Dj
.text:00401CCB                                         ; sub_401A40+45j ...
.text:00401CCB                 xor     eax, eax
.text:00401CCD                 pop     edi
.text:00401CCE                 pop     esi
.text:00401CCF                 pop     ebx
.text:00401CD0                 mov     ecx, [esp+9Ch+var_4]
.text:00401CD7                 xor     ecx, esp
.text:00401CD9                 call    @__security_check_cookie@4 ; __security_check_cookie(x)
.text:00401CDE                 mov     esp, ebp
.text:00401CE0                 pop     ebp
.text:00401CE1                 retn
.text:00401CE2 ; ---------------------------------------------------------------------------
.text:00401CE2
.text:00401CE2 loc_401CE2:                             ; CODE XREF: sub_401A40+2D4j
.text:00401CE2                 mov     bl, [esp+0A8h+var_99]
.text:00401CE6
.text:00401CE6 loc_401CE6:                             ; CODE XREF: sub_401A40+289j
.text:00401CE6                 add     bl, [esp+ecx+0A8h+var_23]
.text:00401CED                 add     dl, [esp+ecx+0A8h+var_24]
.text:00401CF4                 add     al, [esp+ecx+0A8h+var_21]
.text:00401CFB                 mov     [esp+0A8h+var_99], bl
.text:00401CFF                 mov     bl, [esp+0A8h+var_9A]
.text:00401D03                 add     bl, [esp+ecx+0A8h+var_22]
.text:00401D0A                 add     ecx, 4
.text:00401D0D                 mov     [esp+0A8h+var_9A], bl
.text:00401D11                 cmp     ecx, 10h
.text:00401D14                 jl      short loc_401CE2
.text:00401D16                 mov     ecx, [esp+0A8h+var_4]
.text:00401D1D                 add     al, bl
.text:00401D1F                 add     al, [esp+0A8h+var_99]
.text:00401D23                 pop     edi
.text:00401D24                 add     dl, al
.text:00401D26                 xor     eax, eax
.text:00401D28                 cmp     dl, byte ptr [esp+0A4h+var_28+3]
.text:00401D2C                 pop     esi
.text:00401D2D                 setz    al
.text:00401D30                 pop     ebx
.text:00401D31                 xor     ecx, esp
.text:00401D33                 call    @__security_check_cookie@4 ; __security_check_cookie(x)
.text:00401D38                 mov     esp, ebp
.text:00401D3A                 pop     ebp
.text:00401D3B                 retn
.text:00401D3B sub_401A40      endp
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.10.2016, 14:03
Ответы с готовыми решениями:

Алгоритм преобразования строки
Как заменить маленькую букву на большую после точки? (После конца предложения)? подскажите пожалуйста код.

Разработать алгоритм преобразования введенной строки к верхнему регистру
!!!!! Разработать алгоритм преобразования введенной строки к верхнему регистру . Прошу у вас помощи пробовал через...

Составить алгоритм преобразования строки А удалением из него всех запятых, предшествующих первой точке
Всем привет! Помогите пожалуйста решить задачки на досуге. Заранее спасибо 1. Составить алгоритм преобразования строки А удалением из...

1
653 / 161 / 64
Регистрация: 08.04.2015
Сообщений: 411
02.10.2016, 03:55
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Цитата Сообщение от Полный 30h Посмотреть сообщение
Данный исходник не содержит кода подпрограмм, ссылок на которые напихано предостаточно.
Не содержит, но из контекста их смысл понятен:
sub_401960 - преобразование двух хекс-символов в байт;
sub_401700 и sub_401830 - процедуры обновления и финализации хэша (скорее всего МД5).

Хотя для полной картины сама программа не помешала бы, скормить её дизассемблеру ни для кого не проблема.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2016, 03:55
Помогаю со студенческими работами здесь

Алгоритм преобразования в черно-белое
Поясняя вопрос. 1. Понятно любой додумается до - все новые цвета это (r+g+b)/3 и в общем уже готово чернобелое. 2. Но! Я когда-то...

Алгоритм преобразования типа ячейки
В ячейке находилось значение "10:08:00", формат -(все форматы; ч:мм:сс), установил текстовый формат, получилось значение...

Алгоритм преобразования числа в модульное
Здравствуйте, помогите пожалуйста составить алгоритм преобразования числа в модульное представление в системе модулей (p1,p2,pk) и алгоритм...

Алгоритм непрерывного вейвлет-преобразования (НВП)
Здравствуйте. Передо мной стоит следующая задача: необходимо реализовать программу, анализирующую человеческую речь, на основе...

Построить нормальный алгоритм для преобразования
Построить нормальный алгоритм для преобразования слова Р в слово Q, при условии что в каждой подстановке Рi→(•)Qi алгоритма число...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru