39
Joyful Assembly Language Kunio Miyamoto, Ph.D. 1

Joyful assembly language - Assembly Language Tanka

Embed Size (px)

DESCRIPTION

This is a presentation of assembly language tanka.

Citation preview

Page 1: Joyful assembly language - Assembly Language Tanka

Joyful Assembly Language

Kunio Miyamoto, Ph.D.

1

Page 2: Joyful assembly language - Assembly Language Tanka

Assembly language tanka

Kunio Miyamoto, Ph.D.

2

Page 3: Joyful assembly language - Assembly Language Tanka

About me

Copyright by Kunio Miyamoto 3

Page 4: Joyful assembly language - Assembly Language Tanka

About me

It’s a Joke Copyright by Kunio Miyamoto 4

Page 5: Joyful assembly language - Assembly Language Tanka

What is Tanka?

• Tanka is…

• Japanese Short Poem

• 5-7-5-7-7 Style

– Number is the letters of character in each part

• Includes “Kigo(季語)”

– “Kigo” is the season word

• Rule and style

5

Page 6: Joyful assembly language - Assembly Language Tanka

In Wikipedia

• Tanka (短歌 "short poem") is a genre of

classical Japanese poetry and one of the

major genres of Japanese literature

• http://en.wikipedia.org/wiki/Tanka

Copyright by Kunio Miyamoto

Page 7: Joyful assembly language - Assembly Language Tanka

Example

• 東海の小島の磯の白砂に

われ泣きぬれて

蟹(かに)とたはむる(石川啄木)

• On the white sand

Of the beach of a small island

In the Eastern Sea

I, my face streaked with tears,

Am playing with a crab(Takuboku Ishikawa)

Copyright by Kunio Miyamoto

Page 8: Joyful assembly language - Assembly Language Tanka

Example

• 東海の小島の磯の白砂に

われ泣きぬれて

蟹(かに)とたはむる(石川啄木)

• On the white sand

Of the beach of a small island

In the Eastern Sea

I, my face streaked with tears,

Am playing with a crab(Takuboku Ishikawa)

Copyright by Kunio Miyamoto

とうかいの

こじまのいその

しろすなに

われなきぬれて

かにとたはむる

Page 9: Joyful assembly language - Assembly Language Tanka

Example

• 東海の小島の磯の白砂に

われ泣きぬれて

蟹(かに)とたはむる(石川啄木)

• On the white sand

Of the beach of a small island

In the Eastern Sea

I, my face streaked with tears,

Am playing with a crab(Takuboku Ishikawa)

Copyright by Kunio Miyamoto

Remember

This Style

Page 10: Joyful assembly language - Assembly Language Tanka

What is

assembly language tanka? • Assembler TANKA is…

• Machine Language Short Poem(!)

• 5-7-5-7-7 Style

• Includes “Kigo(季語)”

– “Kigo” is the season word

• Rhythmic

e.g.: Ends or starts same code in each part

• Executable(!)

10

Page 11: Joyful assembly language - Assembly Language Tanka

Example

.section .text

.global main

.type main, @function

main:

push $0x43412054

push $0x53524946

mov %esp, %ecx

xor %ebx, %ebx

inc %ebx

mov %ebx, %eax

add %eax, %eax

add %eax, %eax

nop

mov %eax, %edx

add %edx, %edx

int $0x80

add %edx, %esp

ret

Copyright by Kunio Miyamoto

ONLY

14 Instructions!

Runs on Linux/x86

Page 12: Joyful assembly language - Assembly Language Tanka

Style?

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3 Copyright by Kunio Miyamoto

5bytes

5bytes

7bytes

7bytes

7bytes

Page 13: Joyful assembly language - Assembly Language Tanka

Style?

Copyright by Kunio Miyamoto

Remember

This Style

Page 14: Joyful assembly language - Assembly Language Tanka

Season Word?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Page 15: Joyful assembly language - Assembly Language Tanka

Season Word?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

“FIRST AC” Is the

Season Word

of “June”

Page 16: Joyful assembly language - Assembly Language Tanka

Rhythm?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Page 17: Joyful assembly language - Assembly Language Tanka

Rhythm?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Same value

Page 18: Joyful assembly language - Assembly Language Tanka

Rhythm?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3 Same value

Page 19: Joyful assembly language - Assembly Language Tanka

Rhythm?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Refrain

Page 20: Joyful assembly language - Assembly Language Tanka

Rhythm?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Same value

Same value

Refrain

Rhythmic!

Page 21: Joyful assembly language - Assembly Language Tanka

Comparing Style

Copyright by Kunio Miyamoto

Assembly Language Tanka

Page 22: Joyful assembly language - Assembly Language Tanka

Comparing Style

Copyright by Kunio Miyamoto

(Traditional) Tanka Assembly Language Tanka

Page 23: Joyful assembly language - Assembly Language Tanka

Comparing Style

Copyright by Kunio Miyamoto

(Traditional) Tanka Assembly Language Tanka

Same

Style!

Page 24: Joyful assembly language - Assembly Language Tanka

Executable?

Copyright by Kunio Miyamoto

Page 25: Joyful assembly language - Assembly Language Tanka

Executable?

Copyright by Kunio Miyamoto

Of Course!

Page 26: Joyful assembly language - Assembly Language Tanka

BTW

Copyright by Kunio Miyamoto 26

Page 27: Joyful assembly language - Assembly Language Tanka

BTW

Copyright by Kunio Miyamoto 27

Page 28: Joyful assembly language - Assembly Language Tanka

BTW

It’s a Joke Copyright by Kunio Miyamoto 28

Same

Style!

Page 29: Joyful assembly language - Assembly Language Tanka

5 great assembly language

tankist

• Tankist = Assembly language tanka author

Copyright by Kunio Miyamoto

Page 30: Joyful assembly language - Assembly Language Tanka

Copyright by Kunio Miyamoto

Page 31: Joyful assembly language - Assembly Language Tanka

In other programming

language tanka? • Shell Script(/bin/sh)

– line1: #!/bin/sh ← 9letters

Copyright by Kunio Miyamoto

Page 32: Joyful assembly language - Assembly Language Tanka

In other programming

language tanka? • Shell Script(/bin/sh)

– line1: #!/bin/sh ← 9letters

• C language

– Line1: main() ←6letter

Copyright by Kunio Miyamoto

Page 33: Joyful assembly language - Assembly Language Tanka

In other programming

language tanka? • Shell Script(/bin/sh)

– line1: #!/bin/sh ← 9letters

• C language

– Line1: main() ←6letter

Copyright by Kunio Miyamoto

Page 34: Joyful assembly language - Assembly Language Tanka

Assembly language tanka is

useful? Yes!

Learning the

• Assembly language programming

• Optimization

• Shellcode programming

etc… Copyright by Kunio Miyamoto

Page 35: Joyful assembly language - Assembly Language Tanka

Shellcode?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

Page 36: Joyful assembly language - Assembly Language Tanka

Shellcode?

Copyright by Kunio Miyamoto

68 54 20 41 43

68 46 49 52 53 89 e1

31 db 43 89 d8

01 c0 01 c0 90 89 c2

01 d2 cd 80 01 d4 c3

No 0x00!

Page 37: Joyful assembly language - Assembly Language Tanka

Interesting?

Copyright by Kunio Miyamoto

Page 38: Joyful assembly language - Assembly Language Tanka

Interesting?

At first, write!

Copyright by Kunio Miyamoto

Page 39: Joyful assembly language - Assembly Language Tanka

Copyright by Kunio Miyamoto

Thank you! If question,

Twitter: @wakatono

Facebook: https://www.facebook.com/wakatono

Search “wakatono” by Google