HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.04.2010, 14:11
norway
Новичок
Регистрация: 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)
Сей код размещен специально чтобы морфнахом не криптовали пинчи? или есть какой то сокральный смысл?))
 
Ответить с цитированием

  #2  
Старый 18.04.2010, 17:43
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
Провел на форуме:
2185909

Репутация: 308
По умолчанию

Помогите пожалуйста - надо написать на асме:
Цитата:
Ввести строку символов. Вывести сумму цифр в строке, если они там есть.
 
Ответить с цитированием

  #3  
Старый 18.04.2010, 22:34
B1TMAST3R
Новичок
Регистрация: 18.04.2010
Сообщений: 3
Провел на форуме:
20888

Репутация: 10
По умолчанию

Цитата:
Сообщение от [underwater]  
Помогите пожалуйста - надо написать на асме:
Простейшее задание. Сорцы на MASM ТУТ . Пароль к архиву - Antichat.ru
 
Ответить с цитированием

  #4  
Старый 03.05.2010, 10:29
>>serhio<<
Познающий
Регистрация: 10.02.2009
Сообщений: 40
Провел на форуме:
59352

Репутация: 0
По умолчанию

Я в asm пока новичек поєтому не судите строго.
У меня такой вопрос как различают -128 и 128 в однобайтовом двоичном коде если они имеют одинаковій вид 1000 0000
 
Ответить с цитированием

  #5  
Старый 04.05.2010, 17:55
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
По умолчанию

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

  #6  
Старый 03.05.2010, 10:47
_iks_
Познающий
Регистрация: 21.02.2009
Сообщений: 54
Провел на форуме:
1224548

Репутация: 134
По умолчанию

Диапазон там должен быть от -128 до 127, то есть число 128 там отсутствует.
 
Ответить с цитированием

  #7  
Старый 03.05.2010, 22:39
>>serhio<<
Познающий
Регистрация: 10.02.2009
Сообщений: 40
Провел на форуме:
59352

Репутация: 0
По умолчанию

Цитата:
Сообщение от _iks_  
Диапазон там должен быть от -128 до 127, то есть число 128 там отсутствует.
Почему если максимальное число в однобайтовом виде равно 255
 
Ответить с цитированием

  #8  
Старый 04.05.2010, 01:00
B1TMAST3R
Новичок
Регистрация: 18.04.2010
Сообщений: 3
Провел на форуме:
20888

Репутация: 10
По умолчанию

Цитата:
Сообщение от >>serhio<<  
Почему если максимальное число в однобайтовом виде равно 255

Потому что есть "подтипы" переменных Signed и Unsigned. По вопросам дальнейшей поддержки обращайся к справочникам по переменным

Последний раз редактировалось B1TMAST3R; 04.05.2010 в 01:10..
 
Ответить с цитированием

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

Репутация: 96
По умолчанию

Введение в машинный код
wtf?
tutorialZ
 
Ответить с цитированием

  #10  
Старый 17.05.2010, 18:48
megavolt2000
Новичок
Регистрация: 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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.