1. Assembler / Говнокод #6452

    +234

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    00614A77  |.  8BF0          MOV ESI,EAX
    00614A79  |.  BB 01000000   MOV EBX,1
    00614A7E  |.  EB 01         JMP SHORT 00614A81
    00614A80  |>  43            /INC EBX
    00614A81  |>  3BF3           CMP ESI,EBX
    00614A83  |.  7C 07         |JL SHORT 00614A8C
    00614A85  |.  807C1F FF 20  |CMP BYTE PTR DS:[EDI+EBX-1],20
    00614A8A  |.^ 76 F4         \JBE SHORT 00614A80

    Оптимизация компилятора

    Xekep, 22 Апреля 2011

    Комментарии (20)
  2. Assembler / Говнокод #6404

    +225

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    .386
    .model flat,stdcall
     option  casemap:none
          include   c:\masm32\includes\windows.inc
          include   c:\masm32\includes\user32.inc
          include   c:\masm32\includes\kernel32.inc
          includelib c:\masm32\lib\user32.lib
          includelib c:\masm32\lib\kernel32.lib
     bufsize EQU 12
    .data
      a dd 300
      b dd 500
      d dd 300
      fmt db "Max = %2d",0
      buf db bufsize dup(0)
      ctrlf db 0dh,0ah
      stdout dd ?
      cWritten dd ?
      result dd ?
    .code
     start:
      invoke GetStdHandle,STD_OUTPUT_HANDLE
      mov stdout,eax
       mov eax,a            
       mov result,eax  ; изначально максимальный это a
       cmp eax,b       ; сравниваем со вторым числом
       jbe big1        ; если a<=b , значит b больше a
       ja min1         ; иначе a ещё максимальное
      big1:
        mov eax,b           
    	mov result,eax  ;теперь b максимальное
        cmp eax,d 
    	jbe big2   ; максимальное c 
    	jmp print
    	big2: 
    	  mov eax,d 
    	  mov result,eax ;максимальный c
    	  jmp print
      min1:
        mov eax,d
    	cmp eax,a
    	jbe big3
    	mov result,eax
    	jmp print
    	big3:
    	  mov eax,a
    	  mov result,eax
    	  jmp print
       print:
        mov edx,result
        invoke wsprintf, ADDR buf, ADDR fmt, edx
        invoke WriteConsoleA, stdout, ADDR buf, bufsize, ADDR cWritten, NULL
        invoke WriteConsoleA, stdout, ADDR ctrlf, 2, ADDR cWritten, NULL
     end start

    С ума сойти. И это сравнение трёх чисел, которое делается в два простейших условия...

    Ymilij, 19 Апреля 2011

    Комментарии (11)
  3. Assembler / Говнокод #6292

    +242

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    main:
    	mov a, P0
    	dec a
    	inc a
    	jnz __div_part
    	jmp __mul_part
    __mul_part:
    	// mul
    	mov r0, P1
    	mov r2, P2
    	call __Mul
    	mov P1, r0
    	mov P2, r1
    	jmp __end		
    __div_part:
    	// div
    	mov r0, P1
    	mov r2, P2
    	call __Div
    	mov P1, r0
    	mov P2, r1
    	jmp __end
    __end:	
    end

    процедура main лабы по mcs-51

    valik-32, 08 Апреля 2011

    Комментарии (19)
  4. Assembler / Говнокод #6150

    +230

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    org VECTORS
     dw metka1
     org 3feh
     dw start
    
     org 200h
    
    start:
    
     lda #0
     sta 0E0h
     sta 0E1h
     sta 0E2h
    
     clra
     lda #0f0h
     sta 4
     bset 5,0008h
     cli
     jmp $
    
    metka1:
    
     rol 0
     bcs metka2
    
     lda #070h
     sta 4
     lda #1
     sta 0E0h
     jmp metka3
    
    metka2:
    
     lda #0f0h
     sta 4
    
     lda 0E0h
     cmp 0E2h
     beq metka3
    
     lda #0
     sta 0E0h
     lda 0E1h
     inca
     sta 0E1h
     jmp metka4
    
    metka3:
    
     lda 0E1h
     inca
     sta 0E1h
    
    metka4:
     bset 2,0008h
     rti
    
    END

    типовик

    iliym, 31 Марта 2011

    Комментарии (3)
  5. Assembler / Говнокод #6013

    +240

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    lea    0x0(%esi),%esi
    sub    $0x1,%eax
    cmp    $0xffffffff,%eax
    je     0x8048e07
    mov    (%ecx,%eax,4),%esi
    test   %esi,%esi
    je     0x8048df8

    Чудеса оптимизации -О3 на gcc 4.4
    (код в интелловской аннотации, сначала источник, потом назначение)

    SIGSEGV, 17 Марта 2011

    Комментарии (27)
  6. Assembler / Говнокод #5500

    +263

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    :start
    call lol
    jmp start
    
    :lol
    push 9
    ret
    
    :test
    ...

    Не очевидная альтернатива jmp test

    rofl, 02 Февраля 2011

    Комментарии (18)
  7. Assembler / Говнокод #5091

    +225

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ; Program entry point
    00401000:  push 0070F001
    00401005:  call 0040100B
    0040100A:  ret
    0040100B:  ret

    Суровый старт зашифрованного самораспаковывающегося архива. Так хитро передаётся управление на 0070F001 (за сегмент кода).

    TarasB, 28 Декабря 2010

    Комментарии (46)
  8. Assembler / Говнокод #4812

    +266

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    code            segment para
                    assume  cs:code,ds:code
    
                    org     0100h
    start:          
    				mov     dx,offset years_old
    				mov 	cx,dx
    				fuck:
    					mov     dx,offset message       ;назойливая мысль
    					mov     ah,09h                  ;отпечаток на жизни
    					int     21h                     ;вызвать желание
    					dec cx
    				loop fuck
                    mov     ax,4c00h                ;згинуть на**й 
                    int     21h
    
    message         db      'Hociu trahnutsya s etim novenykim simpotich'nym parnem!',13,10,'$'
    years_old       dw      67
                    end     start

    взломал ломиком, черепную коробку одной обычной женской особи..)) добравшись до головного процессора - вот что удалось обнаружить )) ... прошивку бл***и :) хорошо что в эту прошивку не встроен ескплой эксплуатирующий уязвимость RPC MS03-026 (передача через назойливый поток информации передаваемый свистулькой посредством насвистывания...(позже техника была названа НЛП - нейро-лингвистическое программирование) :)

    Maxim546, 02 Декабря 2010

    Комментарии (5)
  9. Assembler / Говнокод #4571

    +223

    1. 1
    2. 2
    3. 3
    mov ax, 4C00h
    mov dx, offset msg
    int 21h

    После этих строк пошёл спать.

    Mencey, 09 Ноября 2010

    Комментарии (26)
  10. Assembler / Говнокод #4024

    +221

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    invoke	CreateFileA,401190h,0C0000000h,3,0,3,80h,0
    	CMP EAX,-1
    	je access
    	mov DWORD PTR SS:EBP-4,eax
    	invoke GetFileSize,DWORD PTR SS:EBP-4,0
    	OR EAX,EAX
    	je file_size
    	MOV DWORD PTR ds:401270h,EAX
    	invoke	GlobalAlloc,40h,eax
    	OR EAX,EAX
    	je error_mem
    	mov DWORD PTR SS:401300h,eax
    	push 0
    	push 401060h
    	push DWORD PTR ss:401270h
    	PUSH DWORD PTR SS:401300h
    	PUSH DWORD PTR SS:EBP-4
    	invoke ReadFile
    	OR EAX,EAX
    	je error_read
    	jmp crypt
    .............
    	 invoke EnableWindow,[hwnd],0
    	 cmp DWORD PTR DS:dddd,4Ch
    	 je  get_open
    	 mov	DWORD PTR DS:dddd,4Ch
    	 MOV	DWORD PTR DS:dddd+12,gameexe
    	 MOV	DWORD PTR DS:dddd+44,g2e
    	 MOV	DWORD PTR DS:dddd+52, OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST + OFN_LONGNAMES + OFN_EXPLORER + \
    						OFN_HIDEREADONLY
    	 MOV	DWORD PTR DS:dddd+28,dddd+100
    	 MOV	DWORD PTR DS:dddd+32,104h
    	 MOV	DWORD PTR DS:dddd+48,alawar
           get_open:
    	 PUSH	dddd
    .............
    dddd:

    нашёл сорц вот такой на фасме О_о

    Xekep, 18 Августа 2010

    Комментарии (5)