ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.04.2010, 14:11
|
|
Новичок
Регистрация: 03.12.2008
Сообщений: 3
Провел на форуме: 27446
Репутация:
0
|
|
В коде морфнаха заметил очень интересные строки
Код:
mov eax,[edi+IMAGE_OPTIONAL_HEADER32.ImageBase] ; закидываем в eax адрес имейдж базы
....
add eax,[FileSize] ; прибавляем к адресу имейджбазы размер файла
.....
cmp eax,1314BBB9h; производим сравнение пинч ли это
jnz fornexta
mov [RB_is],2
fornexta:
cmp eax,1314C600h ; производим сравнение пинч ли это
jnz fornexta2
mov [RB_is],2
fornexta2:
....
mov edx,[edi+IMAGE_SECTION_HEADER.PointerToRawData]; закидываем в edx смещение в файле
add edx,[hMap] ; плюсуем с началом файла в памяти
....
mov eax,[RB_is]
.if eax = 2; если у нас пинч...
add edx,512; добавляем 512 к смещению+началу файла в памяти
.endif
mov ecx,[edi+IMAGE_SECTION_HEADER.SizeOfRawData]; закидываем в eсx физический размер секции на диске
.if eax = 2 ; если у нас пинч...
sub ecx,512; уменьшаем на 512
.endif
...
mov edx,[edi+IMAGE_SECTION_HEADER.VirtualAddress];закидываем в edx виртуальный адрес
add edx,[dwImageBase]; складываем с имейдж базой
mov eax,[RB_is]
.if eax = 2 ; если у нас пинч...
add edx,512; добавляем к виртуальному адресу 512
.endif
....
После этих преобразований у нас получиться что первые 512байт секции уйдут и в память грузиться не будут...
Загрузил пинча в иде и заметил что в этих сегментах расположены данные которые выкидывать нельзя...
вот отрывок из секции данных в первых 512 байтах
Код:
.data:1314B0D2; char aSoftwareMicr_1[]
.data:1314B0D2 aSoftwareMicr_1 db 'SOFTWARE\Microsoft\Windows\CurrentVersion',0
.data:1314B0D2 ; DATA XREF: sub_13141780+Ao
.data:1314B0D2 ; sub_13141780+30o
.data:1314B0FC; char aProgramfilesdi[]
.data:1314B0FC aProgramfilesdi db 'ProgramFilesDir',0 ; DATA XREF: sub_13141780+2Bo
.data:1314B10C dd 6 dup(0)
Сей код размещен специально чтобы морфнахом не криптовали пинчи? или есть какой то сокральный смысл?))
|
|
|

18.04.2010, 17:43
|
|
Познающий
Регистрация: 29.03.2009
Сообщений: 87
Провел на форуме: 2185909
Репутация:
308
|
|
Помогите пожалуйста - надо написать на асме:
Ввести строку символов. Вывести сумму цифр в строке, если они там есть.
|
|
|

18.04.2010, 22:34
|
|
Новичок
Регистрация: 18.04.2010
Сообщений: 3
Провел на форуме: 20888
Репутация:
10
|
|
Сообщение от [underwater]
Помогите пожалуйста - надо написать на асме:
Простейшее задание. Сорцы на MASM ТУТ . Пароль к архиву - Antichat.ru
|
|
|

03.05.2010, 10:29
|
|
Познающий
Регистрация: 10.02.2009
Сообщений: 40
Провел на форуме: 59352
Репутация:
0
|
|
Я в asm пока новичек поєтому не судите строго.
У меня такой вопрос как различают -128 и 128 в однобайтовом двоичном коде если они имеют одинаковій вид 1000 0000
|
|
|

04.05.2010, 17:55
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме: 2823587
Репутация:
106
|
|
Сообщение от >>serhio<<
Я в asm пока новичек поєтому не судите строго.
У меня такой вопрос как различают -128 и 128 в однобайтовом двоичном коде если они имеют одинаковій вид 1000 0000
Стоит начать с изучение книг по асму. Обычно в самом начале(например Крупник "Изучаем ассемблер") расписывают как работает механизм хранения и работы с отрицательными числами. А так в кратце если операция дает отрицательное число то там предусмотрен флаг. А как чего откуда можно еще вот тут например почитать.
|
|
|

03.05.2010, 10:47
|
|
Познающий
Регистрация: 21.02.2009
Сообщений: 54
Провел на форуме: 1224548
Репутация:
134
|
|
Диапазон там должен быть от -128 до 127, то есть число 128 там отсутствует.
|
|
|

03.05.2010, 22:39
|
|
Познающий
Регистрация: 10.02.2009
Сообщений: 40
Провел на форуме: 59352
Репутация:
0
|
|
Сообщение от _iks_
Диапазон там должен быть от -128 до 127, то есть число 128 там отсутствует.
Почему если максимальное число в однобайтовом виде равно 255
|
|
|

04.05.2010, 01:00
|
|
Новичок
Регистрация: 18.04.2010
Сообщений: 3
Провел на форуме: 20888
Репутация:
10
|
|
Сообщение от >>serhio<<
Почему если максимальное число в однобайтовом виде равно 255
Потому что есть "подтипы" переменных Signed и Unsigned. По вопросам дальнейшей поддержки обращайся к справочникам по переменным
Последний раз редактировалось B1TMAST3R; 04.05.2010 в 01:10..
|
|
|

11.05.2010, 12:12
|
|
Постоянный
Регистрация: 16.02.2008
Сообщений: 395
Провел на форуме: 3370466
Репутация:
96
|
|
|
|
|

17.05.2010, 18:48
|
|
Новичок
Регистрация: 19.10.2009
Сообщений: 4
Провел на форуме: 790114
Репутация:
0
|
|
Разработка и реализация на ассемблере программы обмена данными между ЭВМ через последовательный интерфейс.
кто может сделать?
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|