[ Assembler ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by !_filin_!, 25 May 2007.

  1. SVAROG

    SVAROG Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
    Ra$cal
    ну то что SS это сегмент стека я понял, а EBP-14 это указатель на адрес , но что такое двоеточие и что попадет в итоге в EDX
     
  2. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    двоеточие - это "команда" переопределения сегмента. Те таким образом указывается относительно какого сегмента отсчитывается смещение после двоеточия. В защищенном режиме в сегментных регистрах хранятся селекторы, определяющие сегмент, но это тебе уже не важно. В принципе не обращай внимание на эти двоеточия, тк в винде у нас модель памяти flat и играть роль сегменты в твоем случае не будут.

    dword ptr - это указывает на то, что в правом операнде у нас указатель на двойное слово. В принципе его можно не указывать явно, тк размерность второго операнда определяет первый, а он как раз - dword.

    MOV EDX,DWORD PTR SS:[EBP-14]

    Таким образом эта команда будет означать - переместить двойное слово в регистр edx из ячейки памяти по смещению ebp-14 относительно сегмента, селектор которого находится в регистре SS.
     
    2 people like this.
  3. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Как отладить приложение в OllyDbg? (т.е. подправить код приложения на asm'е)
     
  4. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    в окне дизассемблера на команду двойной клик, в появившемся окошке набираешь новую команду и давишь интер. Потом там же в контекстном меню copy to executable. Дальше сам разберешься )))
     
  5. swt1

    swt1 Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    306
    Likes Received:
    78
    Reputations:
    21
    copy to executable => all modifications
     
  6. Molchun

    Molchun New Member

    Joined:
    22 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Извените что вмешиваюсь.У меня вопрос.Создал код
    (с книги)
    CSEG segment
    org 100h
    Begin:
    mov ah,9
    mov dx,offset Message
    int 21h
    int 20h
    Message db 'Hello$'
    CSEG ends
    end Begin
    сохранил его в asm,теперь мне сначала нужно получить com файл.У меня есть TASM,мне сказали что через коммандную строку можно скомпилировать типо : TASM.exe (имя файла).asm (имя файла).com. Но при такой раскладке программа не запускается даже если и создался com файл.Спасибо
     
  7. _>SubDeviL<_

    _>SubDeviL<_ Elder - Старейшина

    Joined:
    22 Jun 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Всем привет, есть EP вида PUSH 12345678, но на неё орёт антивирь, чем можно заменить PUSH 12345678 ? через переменную например или как?
     
  8. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Определяеш адресс текущей верхушки стека прибавляеш 4 байта и заталкиваеш обычным MOV [адрес+4],12345678
    Как то так.
     
  9. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    У тебя Vista?
     
  10. Molchun

    Molchun New Member

    Joined:
    22 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    У меня XP,спасибо,я нашел в чем у меня проблема-tlink был коцаный поэтому не компелировалось
     
  11. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2Molchun

    советую опомнится и забить на тасм. Масмом пользуйся.
     
  12. Molchun

    Molchun New Member

    Joined:
    22 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    а в чем отличие то?
     
  13. Molchun

    Molchun New Member

    Joined:
    22 Sep 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    я с тасм хоть немного разобрался а вот масм у меня есть v7 так там не получается вообще сом сделать obj тока,в общем я чайник конкретный:)
     
  14. click

    click Member

    Joined:
    26 Apr 2009
    Messages:
    114
    Likes Received:
    25
    Reputations:
    0
    тасм умер:) но тебе пока без разницы..
    создать obj для com программы в масме,
    версия выше 6
    MASM.EXE prog.asm
    LINK.EXE prog.obj /t
    выше 6
    ML.EXE PROG.ASM /AT
    будут созданый файлы prog.asm и prog.com
     
  15. click

    click Member

    Joined:
    26 Apr 2009
    Messages:
    114
    Likes Received:
    25
    Reputations:
    0
    Mitnick17
    в gas http://asm.sourceforge.net//articles/linasm.html#InlineASM
    вот VS
    http://www.xakep.ru/magazine/xs/071/040/1.asp
     
  16. swt1

    swt1 Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    306
    Likes Received:
    78
    Reputations:
    21
    RedASM+FASM or just fasm :)

    RedASM+FASM

    fasm link
    или просто ставь fasm
     
  17. SEKTOR3A

    SEKTOR3A New Member

    Joined:
    2 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    плз скиньте какой-нить пример фейка на асме (fasm) например веб мани и чтоб логин и пароль приходили на фтп
    вот пример но не могу сделать подключение к сокетам

    format PE GUI 4.0
    entry start

    include 'include\win32a.inc'
    include 'include\encoding\WIN1251.INC'
    ID_CAPTION = 101
    ID_PASS = 102
    ID_ICONINFORMATION = 103
    ID_ICONWARNING = 104
    ID_ICONERROR = 105
    HTCAPTION = 2

    section '.data' data readable writeable

    caption db 'всем привет',0
    msgOK db 'спасибо за деньги.',0
    hInstance dd ?

    section '.code' code readable executable

    start:
    invoke GetModuleHandle,0
    mov [hInstance],eax
    invoke DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0
    or eax,eax
    jz exit

    invoke MessageBox,HWND_DESKTOP,msgOK,caption,0
    jmp exit

    exit:
    invoke ExitProcess,0
    proc DialogProc hwnddlg,msg,wparam,lparam
    push ebx esi edi
    mov eax,[msg]
    cmp eax,WM_COMMAND
    je wmcommand
    cmp eax,WM_INITDIALOG
    je wminitdialog
    cmp eax,WM_CLOSE
    je wmclose
    xor eax,eax
    jmp finish
    wmcommand:
    cmp [wparam],IDCANCEL
    je wmclose
    cmp [wparam],IDOK
    jne processed
    invoke EndDialog,[hwnddlg],1
    jmp processed
    wminitdialog:
    invoke LoadIcon,[hInstance],17
    invoke SendMessage,[hwnddlg],WM_SETICON,EM_LIMITTEXT,ICON_SMALL,eax
    jmp processed
    wmclose:
    invoke EndDialog,[hwnddlg],0
    processed:
    mov eax,1
    finish:
    pop edi esi ebx
    ret
    endp


    section '.idata' import data readable writeable

    library kernel32,'KERNEL32.DLL',\
    user32,'USER32.DLL'

    include 'include\api\kernel32.inc'
    include 'include\api\user32.inc'

    section '.rsrc' resource data readable
    IDR_PICT = 27

    directory RT_DIALOG,dialogs,\
    RT_BITMAP,bitmaps,\
    RT_ICON,icons,\
    RT_GROUP_ICON,group_icons,\
    RT_VERSION,versions

    resource icons,\
    1,LANG_NEUTRAL,icon_data
    resource group_icons,\
    17,LANG_NEUTRAL,main_icon
    resource versions,\
    2,LANG_ENGLISH+SUBLANG_DEFAULT,version
    resource dialogs,\
    37,LANG_ENGLISH+SUBLANG_DEFAULT,main
    resource bitmaps,\
    IDR_PICT,LANG_NEUTRAL,pict

    dialog main,'WebMoney Keeper Classic 3.7.0.1',10,10,213,147,WS_VISIBLE+WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER+DS_MODALFRAME
    dialogitem 'STATIC','&WMID:',100,75,90,50,35,WS_VISIBLE
    dialogitem 'EDIT','',ID_CAPTION,110,90,90,12,WS_VISIBLE+WS_BORDER+ES_AUTOHSCROLL
    dialogitem 'STATIC','пароль',70,70,110,50,8,WS_VISIBLE
    dialogitem 'EDIT','',ID_PASS,110,110,90,12,WS_VISIBLE+WS_BORDER+ES_AUTOHSCROLL
    dialogitem 'BUTTON',Войти',ID_ICONINFORMATION,71,10,60,8,WS_VISIBLE+BS_AUTORADIOBUTTON

    dialogitem 'BUTTON','&Enter in the programm',ID_ICONWARNING,71,35,10,15,WS_VISIBLE+BS_AUTORADIOBUTTON
    dialogitem 'BUTTON','&я хочу',130,70,0,140,55,WS_VISIBLE+BS_GROUPBOX
    dialogitem 'BUTTON','...........',ID_ICONERROR,71,20,38,17,WS_VISIBLE+BS_AUTORADIOBUTTON
    dialogitem 'STATIC',IDR_PICT,-1,0,0,0,0,WS_VISIBLE+SS_BITMAP
    dialogitem 'BUTTON','&OK',IDOK,95,130,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
    dialogitem 'BUTTON','&Отмена',IDCANCEL,155,130,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
    enddialog

    bitmap pict,'bitmap.bmp'
    icon main_icon,icon_data,'bmp.ico'
    versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\
    'FileDescription','Bitmap example',\
    'LegalCopyright',<'Copyright ',0A9h,' BarMentaLisk 0000'>,\
    'FileVersion','0.1',\
    'ProductVersion','0.1',\
    'OriginalFilename','bmp_example'

    resdata fdat
    file 'sock.exe'
    endres
     
    #617 SEKTOR3A, 28 Oct 2009
    Last edited: 28 Oct 2009
  18. SEKTOR3A

    SEKTOR3A New Member

    Joined:
    2 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    дальше просто не смог
    format PE GUI 4.0
    entry main


    include 'include\win32a.inc'





    section '.text' data readable writeable executable import
    ;--------------- IMPORT -------------------
    library kernel32, 'kernel32.dll',\
    wsock32, 'wsock32.dll'
    include 'include\api\kernel32.inc'
    include 'include\api\wsock32.inc'
    ;--------------- CODE -------------------
    main:
    invoke WSAStartup, 0101h, wdata
    invoke socket, AF_INET, SOCK_STREAM, 6
    mov [sock], eax
    mov [saddr.sin_family], AF_INET
    invoke htons, 80
    mov [saddr.sin_port], ax
    invoke inet_addr, ip
    mov [saddr.sin_addr], eax
     
  19. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2SEKTOR3A
    а почитать для начала что-нибудь про сокеты ты просто не удосужился? Даже инициализация неверна ...
     
  20. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Хочу выучить ASM с самого начала.
    Киньте пожалуйста литературу. Жел русскую.
    П.С. Гугл не отключили, но книг хороших не нашел чтоб скачать, а покупать фиг знает что не буду.
    П.П.С. Не школьник, схватываю быстро, но незнаю ни басика ни паскаля (чисто в школьных чертах).
     
    #620 Adekvatnyj, 29 Oct 2009
    Last edited: 29 Oct 2009