アセンブラ初心者スレッド 2©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
2017/04/13(木) 17:35:55.70ID:1WMn3pSz
初心者OK!質問大歓迎!のアセンブラのスレッドです。
基本情報の勉強中の人、PICやH8を勉強中の学生などなど…

前スレ
アセンブラ初心者スレッド
http://echo.2ch.net/test/read.cgi/tech/1314502612/

関連スレ
アセンブラ 13
http://echo.2ch.net/test/read.cgi/tech/1314512680/
2020/11/26(木) 20:42:01.46ID:l8W6EZba
よく使う命令を重点的にトランジスタを大量投入して速くしようというのはコードの互換性を大事にしてるからの発想。古いコードでも速く動かしてやるという努力の賜物のx86。
一方、使わない命令は削除、もう頭使うのが嫌だからと最適化はコンパイラの仕事と最適化を放り出して衰退したRISC哲学。
2020/11/26(木) 20:43:40.28ID:lH6B10sG
>>916
mov reg,0
は、オペランドも全て含めて2バイト。
0は、short formで8BITオペランドになるから。
xor reg,regは、immオペランドが無くても2バイト。
なぜなら、movは、特別な短いマシン語が割り当てられているのに、xorは
そうではないから。
919デフォルトの名無しさん
垢版 |
2020/11/26(木) 20:50:33.32ID:weG7Hi1V
タブ機能付きのソフト(AcrobatReaderとかテキストエディターとか)の現在アクティブな
タブのファイルパスのアドレスを調べたいんですけど、めちゃめちゃ頑張ったんですけど無理でした。
わかったことは、AcrobatReaderの場合、開いた順にインデックスが振られて(初めの値は0
ではなく1)、アクティブタブのインデックスが格納されたアドレスがあるということです。
もしくはインデックスが振られるのではなく、ファイルパスを開いた順に配列にプッシュして
ファイルパス配列[アクティブタブのインデックス - 1] のタブをアクティブにしろという命令が出てる。
前者の場合、インデックスが格納されてるアドレスがどこかさっぱりわかんなくって、ファイルパス
のアドレスからちょっと前をみたりマックスパスの260Byte後ろのとこを見たりしたんですけど
それらしきインデックスが見つかりませぬ。
それで、ファイルパスにアクセスしてる関数を見たんですけどアセンブリ言語サッパリ( 一一)
どなたか助言お願いします。

ファイルパスにアクセスしてるらしき関数↓
AcroRd32.dll+4637E - 33 D2 - xor edx,edx
AcroRd32.dll+46380 - 8B C1 - mov eax,ecx
AcroRd32.dll+46382 - 66 39 11 - cmp [ecx],dx
AcroRd32.dll+46385 - 74 08 - je AcroRd32.dll+4638F
AcroRd32.dll+46387 - 83 C0 02 - add eax,02 { 2 }
AcroRd32.dll+4638A - 66 39 10 - cmp [eax],dx
AcroRd32.dll+4638D - 75 F8 - jne AcroRd32.dll+46387
AcroRd32.dll+4638F - 2B C1 - sub eax,ecx
AcroRd32.dll+46391 - D1 F8 - sar eax,1
AcroRd32.dll+46393 - 5D - pop ebp
AcroRd32.dll+46394 - C3 - ret

もう1週間くらい頑張ってます。宜しくお願いします。
2020/11/27(金) 00:50:22.02ID:dazyxaWu
>>918
ならないな。バイナリ出して。

0100 mov ax,0
0103 xor ax,ax
0100 B8 00 00 31 C0

B8 00 00 00 00 mov eax,0
33 C0 xor eax,eax
2020/11/27(金) 00:56:36.27ID:lOUpIwv2
OllyDbg などの逆アセンブラツールを使えないのか?
2020/11/27(金) 14:37:53.57ID:35rurNSb
>>919
何をしたいのかが分からないが、例えばVS2019にAcrobatReaderの*.exeファイルを
ドラッグアンドドロップして、デバッグを開始し、タブにファイルを開いた状態にする。
そこでデバッガによりアプリを停止させて、メモリー内でそのファイル名を検索する。
どうやって検索すればよいかは良く知らない。
VS2019ではなく、OllyDbgなどを使えばよいかもしれない。
それでファイル名が入っているメモリーアドレスは分かることは分かる。
もう一つは、ファイルをオープンする場合、必ず Win32 の CreateFile APIが呼び出される
ので、CreateFileの 関数アドレスにブレイクポイントを仕掛ける。
その状態で実行すると何回かブレイクしているうち、タブのファイル名に対して
CreateFileが呼び出されることがあるはず。
その状態になったら、コールスタック(呼び出し履歴)を辿って、CreateFileを
呼び出している場所を見つける。そうすると、ファイル名を渡しているコードが
見つかる。
2020/11/27(金) 14:42:33.59ID:35rurNSb
>>922
なお、ファイルパスの入っているアドレスは分かる様になるが、
当然、アドレスは毎回変化するので、果たして何をしたいか、ということになる。
ファイルパスを入れているメモリーブロックを malloc や new している
コードを探すことは出来るかもしれないし、そのアドレスをどこかに格納している
コードも探すことは可能かも知れない。
が、複雑すぎて、そこで得た知見で何かをするということは
アセンブラに最高に詳しい人でもかなり難しい。
2020/11/27(金) 14:47:20.40ID:35rurNSb
>>923
例えば、OllyDbgなどを使えば、ファイルパスが入っているメモリーアドレスを
検索して探し出すことは出来るかも知れない。
それで見つかったアドレスを X とする。
今度は、そのアドレス X を格納しているメモリーを探すこともできることはできる
可能性がある。
その場合、little endian なので、バイトレベルでは下位バイトから上位バイトに
向かって格納されていることに注意する。
ただし、アドレスXが格納されているアドレスは、複数見つかる可能性がある。
また、X そのものではなく、X より少し小さいアドレスが格納されていることもありえる。
だから、このような解析は難しいものとなる。

またこのような方法以外に、dumpbin に /disasm オプションをつけて Acrobat の *.exeを
逆アセンブルした結果を併用するのが基本。
2020/11/27(金) 14:53:31.46ID:35rurNSb
>>924
そのような方法で粘り強く解析していくと、dumpbinの逆アセンブルコードの
どのあたりで、ファイルパスを格納するメモリーを確保し、そのアドレスを
どこかに記録しているコードは見つかる可能性は有る。
ただし、問題はそう簡単ではなく、「どこかに記録している」の「どこか」
がまた、毎回アドレスが変わることにある。
C/C++で言えば、非常に多数の構造体が連鎖的にリンクされているから。
このくらいの規模のアプリだと、その連鎖は、10以上になることは少なくない。
連鎖の仕方もif分などで場合分けされていて、条件によって複雑に代わりうる。
ソースコードがあっても複雑すぎてなにをやっているかを理解することはとても
困難。だから、ソースコードが無い状態でそれを理解することはとてつもなく
難しい。
2020/11/27(金) 19:42:52.50ID:ljdbT47c
でも有能なハッカーはそれを解読するよね
2020/11/27(金) 22:46:27.98ID:ULLAjR/s
>>926
お前さんは有能なハッカーですか?
2020/11/28(土) 00:05:40.76ID:OUdaBd4w
>>926
ハッカーは、ハッキングに関係ないことは何もやらないでしょう
2020/11/28(土) 00:34:33.70ID:qjEapHwo
> mov reg,0
> は、オペランドも全て含めて2バイト。
> 0は、short formで8BITオペランドになるから。

これって本当なの? そうアセンブルされないけど。
2020/11/28(土) 17:46:27.32ID:WIRcuTWz
>>929
どのCPUかによって変わるだろ。
自分が使ってるCPUのマニュアルを読んで自分で確認したらどうか。
2020/11/28(土) 20:17:09.98ID:qjEapHwo
アスペなの? ボクのCPUの話じゃなく、
本人はz80ではなくx86だと言ってるからx86の話を聞いているんだよ。
他社の互換含めてx86系CPUが一体どれだけあると思ってるの? 全部確認できるわけないじゃん。
932デフォルトの名無しさん
垢版 |
2020/11/28(土) 20:21:31.70ID:kjtXSxRe
>>919
です!!>>922 さんありがとうございました!
なんとアクティブタブのファイルパスアドレス見つかりました!
AHKですけど、よかったら皆さんこの関数使ってください!

;==================================================
JEE_GetAcroRd32Path(hWnd)
{
WinGetClass, vWinClass, % "ahk_id " hWnd
if !(vWinClass = "AcrobatSDIWindow")
return
WinGet, vPID, PID, % "ahk_id " hWnd
WinGet, vPPath, ProcessPath, % "ahk_id " hWnd
FileGetVersion, vPVersion, % vPPath

MAX_PATH := 260
;PROCESS_QUERY_INFORMATION := 0x400 ;PROCESS_VM_READ := 0x10
if !hProc := DllCall("kernel32\OpenProcess", UInt,0x410, Int,0, UInt,vPID, Ptr)
return
if !vAddress && A_Is64bitOS
{
DllCall("kernel32\IsWow64Process", Ptr,hProc, IntP,vIsWow64Process)
vPIs64 := !vIsWow64Process
}
2020/11/28(土) 20:22:46.29ID:Sl4N7Gov
AMD64やIA-32eのマニュアルに2バイトで0クリア出来るオペコードはないように見えるな
934デフォルトの名無しさん
垢版 |
2020/11/28(土) 20:23:26.87ID:kjtXSxRe
if !vAddress
{
VarSetCapacity(MEMORY_BASIC_INFORMATION, A_PtrSize=8?48:28, 0)
vAddress := 0
Loop
{
if !DllCall("kernel32\VirtualQueryEx", Ptr,hProc, Ptr,vAddress, Ptr,&MEMORY_BASIC_INFORMATION, UPtr,A_PtrSize=8?48:28, UPtr)
break

vMbiBaseAddress := NumGet(MEMORY_BASIC_INFORMATION, 0, "Ptr")
vMbiRegionSize := NumGet(MEMORY_BASIC_INFORMATION, A_PtrSize=8?24:12, "UPtr")
vMbiState := NumGet(MEMORY_BASIC_INFORMATION, A_PtrSize=8?32:16, "UInt")
;vMbiProtect := NumGet(MEMORY_BASIC_INFORMATION, A_PtrSize=8?36:20, "UInt")
vMbiType := NumGet(MEMORY_BASIC_INFORMATION, A_PtrSize=8?40:24, "UInt")

vName := ""
if (vMbiState & 0x1000) ;MEM_COMMIT := 0x1000
&& (vMbiType & 0x1000000) ;MEM_IMAGE := 0x1000000
;&& (vMbiProtect = 0x4) ;PAGE_READWRITE := 0x4
{
vPath := ""
VarSetCapacity(vPath, MAX_PATH*2)
DllCall("psapi\GetMappedFileName", Ptr,hProc, Ptr,vMbiBaseAddress, Str,vPath, UInt,MAX_PATH*2, UInt)
if !(vPath = "")
SplitPath, vPath, vName

}
935デフォルトの名無しさん
垢版 |
2020/11/28(土) 20:25:32.47ID:kjtXSxRe
if InStr(vName, "AcroRd32.dll")
{
;get address where path starts
;if vPIs64{
; vAddress := vMbiBaseAddress + 0x19d3d9c
;}
;else{
vAddress := vMbiBaseAddress + 0x19d3d9c
;}
break
}
vAddress += vMbiRegionSize
if 0
if (vAddress > 2**32-1) ;4 gigabytes
{
DllCall("kernel32\CloseHandle", Ptr,hProc)
return
}
}
}
936デフォルトの名無しさん
垢版 |
2020/11/28(土) 20:26:33.51ID:kjtXSxRe
VarSetCapacity(MEMORY_BASIC_INFORMATION, A_PtrSize=8?48:28, 0)
if vAddress
&& DllCall("kernel32\VirtualQueryEx", Ptr,hProc, Ptr,vMbiBaseAddress, Ptr,&MEMORY_BASIC_INFORMATION, UPtr,A_PtrSize=8?48:28, UPtr)
{
memVal := ReadMemory32(vAddress, 0, vPID)
memVal := ReadMemory32(memVal, 0x78, vPID)
memVal := ReadMemory32(memVal, 0x18, vPID)
memVal := ReadMemory32(memVal, 0x10, vPID)
memVal := ReadMemory32(memVal, 0x10, vPID)
;memVal += 0x0
vPath := ""
VarSetCapacity(vPath, MAX_PATH*2)
DllCall("psapi\GetMappedFileName", Ptr,hProc, Ptr,vMbiBaseAddress, Str,vPath, UInt,MAX_PATH*2, UInt)
if InStr(vPath, "AcroRd32.dll")
{
vPath2 := ""
VarSetCapacity(vPath2, MAX_PATH*2, 0)
DllCall("ReadProcessMemory", "UInt", hProc, UInt, memVal, Str, vPath2, Uint, MAX_PATH*2, UPtr,0)
vPath3 := StrGet(&vPath2, "cp932")
}
}
DllCall("kernel32\CloseHandle", Ptr, hProc)
return vPath3
}
937デフォルトの名無しさん
垢版 |
2020/11/28(土) 20:28:28.40ID:kjtXSxRe
ReadMemory32(MADDRESS, pOffset = 0, activePID := 0)
{
VarSetCapacity(MVALUE,8)
ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", activePID, "UInt")
lastErr := DllCall("GetLastError")
DllCall("ReadProcessMemory", "UInt", ProcessHandle, "UInt", MADDRESS+pOffset, "Str", MVALUE, "Uint",8, "Uint *",0)
DllCall("CloseHandle", "int", ProcessHandle)
result := 0
Loop 4{
result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
}
return result
}
2020/11/29(日) 13:50:46.99ID:tmDS9Mir
>>937
質問が二つ有る :
1. この言語の名称は何?
2. 手書きしたのか自動生成したのかどちら?
2020/11/29(日) 13:51:20.22ID:tmDS9Mir
AutoHotKeyか。
940デフォルトの名無しさん
垢版 |
2020/11/29(日) 15:27:25.94ID:g07v1NN9
>>938
手書きですよ〜〜。自動生成とかどうやってやるんですか?ぼくにはそんな
AIみたいなプログラム作れません。
2020/11/29(日) 15:41:01.10ID:tmDS9Mir
>>940
なるほど。
ところでこれは何をするプログラムで、どんな機能が有るの。
2020/11/29(日) 15:50:37.08ID:sV/hNKwx
x86で該当しそうなのはmovzx movsxくらいだけどな。
movzx ax,0
でオペランド含めて
OF B6 00
の3バイト。
xor ax,axが1バイトというのはオペランドを含まないならそうかもしれんな。
mov ax,0がオペランド込みで2バイトのコードがあるなら教えてほしい。
2020/11/29(日) 16:30:48.26ID:tmDS9Mir
>>942
8BIT測値を16/32BITに拡張する「即値拡張」なる形式が、add,sub,or,xor,and
adc,sbb,cmp や、push,imul には存在しているが、mov命令には存在してないようだ。
2020/11/29(日) 19:36:03.18ID:g07v1NN9
>>941
AcrobatReaderのウィンドウハンドルを渡して、アクティブタブのファイルパス
が返ってくる関数ですよー。

F1::
;F1を押したら
;アクティブウィンドウハンドルの取得(AcrobatReaderをアクティブにしといてください)
hwnd := WinExist("A")
;アクティブタブのファイルパスを取得
filePath := JEE_GetAcroRd32Path(hwnd)
;メッセージボックスで表示
MsgBox, % filePath
return

こんな感じで使ってください。
2020/11/30(月) 06:36:20.46ID:jVClAyvr
ここそういうスレだっけ?
2020/11/30(月) 15:37:02.85ID:SYaCp1kg
スレチすまそ
2020/11/30(月) 21:26:57.27ID:aenc2Jvq
どうせ過疎ってんだからいいだろ
2020/12/01(火) 01:21:53.10ID:QGlkeoFk
え?なんで?
2020/12/01(火) 14:57:54.27ID:hTz4hSGC
誰も何も書かなきゃ落ちるから
2020/12/01(火) 15:06:31.69ID:5apuVehD
それでも関係ないこと書くのは違うな
2020/12/01(火) 15:45:01.61ID:hTz4hSGC
じゃあきみが頑張って書いてスレを維持してくれ
2020/12/01(火) 20:53:32.04ID:QGlkeoFk
人がいないスレをわざわざ上げる必要ないので
関係ない話なら他の上がっているスレに書けばいいだろ
2020/12/12(土) 05:38:07.46ID:0YPrQOFp
ほしゆ(・ω・)
2020/12/12(土) 17:19:41.14ID:YnqZkJbK
あーあ、誰も書かなくなったw 落ちるぞ
2020/12/13(日) 02:46:51.94ID:46vi4xSP
素朴な思い付きの疑問なのだけど、どうして書籍としてAMD64の入門書が無いの?
需要も知識ある人も、それなりに居そうだけど。

まさか、AMDから許可がおりないとか?
2020/12/13(日) 06:59:00.79ID:5t0HrIYx
ほしゆ(・ω・)
2020/12/13(日) 15:57:52.04ID:+kVWWkIy
>>955
書けば売れるんじゃね
2020/12/13(日) 17:46:48.41ID:tEItIdi/
>>955
「図解64ビットがわかる (図解 知りたい!テクノロジー)」でググれ
959955
垢版 |
2020/12/14(月) 05:46:00.53ID:lPWXZq4e
>>958
店頭在庫を見て歩いて早幾年、無いと思っていたけれどあるのね。
しかし多様性はなさそう。

情報ありがとう。
2020/12/14(月) 09:33:35.43ID:7ZAWu3kI
>>958
この人の本ってプログラミングに役立つん?
2020/12/14(月) 15:32:42.23ID:7+Opk3xu
普通に考えてAMDやIntelが公開している最適化マニュアル等の方が役立つ
2020/12/14(月) 17:48:08.53ID:yiGrKys0
>>960
プログラミングの本じゃない。プログラミングの前にx64のアーキテクチャを知らないと話にならないだろ。
それを知るための本。
2020/12/15(火) 23:33:29.39ID:JKngFzP4
64bitアセンブラの本もあるじゃないか
「64ビットアセンブラ入門―64ビットCPUの基本構造もやさしく解説」 (Amazon)
2020/12/16(水) 08:28:24.95ID:4AurUS4h
アセンブラは、C のポインタで躓かないように
Z80 程度を少し (もちろんポインタを使う程度) やればいいと思う。
2020/12/16(水) 11:53:24.15ID:2Jfp/ir2
アセンブラやるのにアーキテクチャやCが必要なのかな?
2020/12/16(水) 19:53:44.68ID:xpVb4SZu
>>965
各種レジスタ構成やそれらの性質、仮想記憶のしくみなどを知らずにアセンブラやろうとするのは無謀もいいとこだろう。
Cで書いたコードの一部をアセンブラに書き換えて変更したり最適化するとき、Cのコードに対応するアセンブラソースが
どうなっているか見るにはCで何をしようとしているかわからないと話にならないだろう。
こういうことは知ってて損することはない。
967デフォルトの名無しさん
垢版 |
2020/12/19(土) 08:32:12.96ID:SL5FUo+H
>>963
その本、Cから呼び出す前提だったから、アセンブラでの変数宣言の仕方は載ってない。
2020/12/19(土) 19:14:03.47ID:wFrehAp+
>>967
細かいことは、Intelのリファレンスマニュアルを見ながら簡単な実験をすればわかる。
https://53ningen.com/assembly02/
969デフォルトの名無しさん
垢版 |
2020/12/19(土) 20:11:53.26ID:TfP5rB1Q
CD21 を学習しないとなw
2020/12/19(土) 21:14:42.16ID:61b7WmYd
Cが先か?アセンブラが先か?
971デフォルトの名無しさん
垢版 |
2020/12/20(日) 04:41:50.25ID:mOcnJILL
>>970
Cコンパイラが生成したアセンブラよく読んだよ
2020/12/20(日) 12:47:01.51ID:NmAfNXJq
>>967
int some_data = 5;
という変数は、アセンブラでは以下のようにすると定義できる:
_DATA segment DWORD
_some_data dd 5
_DATA ends

dd は、define dword の意味。db だと byte, dw だと word、となる。
構造体の場合は、struc を使うか、または、メンバのdd,dw,dbをそのまま並べる。
自動 align はされないので、alignment をとりたい場合は、自分で pading するか、
align 擬似命令か、even 擬似命令を使う。
2020/12/20(日) 12:48:36.41ID:NmAfNXJq
_DATA segment DWORD
の部分の DWORD は、そのセグメントの先頭を、DWORD でアラインする、という
意味。つまり、セグメントの先頭アドレスが 4 の倍数に配置される。
省略も可能。
アラインメントをしなくてもプログラムは動くが、少し遅くなることが有る。
974デフォルトの名無しさん
垢版 |
2020/12/21(月) 08:58:26.80ID:LKkS73pR
>>973
いやいや、bus errorでしょもう。
2020/12/21(月) 11:00:51.03ID:i3HSzHFO
今時のISAはアライメントズレでロード/ストアした場合でも遅くなるだけじゃね
IA32、AMD64、ARM、RX、RISC-V
あたりはアライメントがずれていても例外は吐かないように見える
2020/12/21(月) 13:34:54.19ID:xeeueWnS
>>974
x86, AMD64 だと 読み書きが遅くなるだけで bus error にはならない。
但し、スタックポインタの値は 4 または 8 の倍数になっていないと
例外が起きる仕組みがある。
2020/12/21(月) 13:38:38.63ID:xeeueWnS
構造体メンバのアラインメントも、x86, AMD64 では速度面以外では必要ではない。
他の系統のCPUでは、アラインメントが揃ってないと読み込めない様になっている
ことがあるが、x86, AMD64 の人から見ると、そういったCPUに足をひきづられて
ウザイことがある。
そういうCPUのために、x86, x64 では不要の構造体のアラインメントなどウルサすぎる。
2020/12/21(月) 14:24:05.05ID:xeeueWnS
構造体メンバのアラインは、x86、x64でも速度のために有ったほうが良いかも
知れないが、バイナリファイルの中の32BIT整数の部分をアラインするのは、
ちょっと抵抗を感じることがある。
ファイルの場合、読み込み速度よりサイズの小ささが重要だと思うので。
他のCPUでは読み込めないなら、そのCPUの設計が欠陥だとも考えられるし、
そんなCPUの事まで配慮してサイズが増大するのはいい迷惑。
2020/12/21(月) 17:07:46.38ID:GZaqA6YK
バイナリファイル解析してるとアライン考慮部分と全く配慮してないが混在されてるのがまれによくある
980デフォルトの名無しさん
垢版 |
2020/12/21(月) 19:28:27.84ID:LKkS73pR
アライメントなんかアセンブルディレクティブ疑似命令で自動でやってくれるでしょ.sizeofとかもアライメント考慮してサイズ返してくれるし。
コンパイラが再生するデータ構造はアライメント合わせされてる。x86でオプティマイズサイズだとされないか。
2020/12/21(月) 20:01:53.70ID:Ttyv2kNo
高性能PC!!
を謳ってる配信でintelが全く見当たらなくなったのは隔世の感があるな。
配信してる超絶プログラマさんももうAMDしか選択肢がない言うてた
2020/12/22(火) 00:21:52.28ID:tgdJRQi2
IA64やらずに超絶とは
2020/12/22(火) 00:42:43.81ID:btWe0I+s
IA64はお亡くなりになられたよ・・・
2020/12/22(火) 11:00:09.36ID:kzqT97dS
PS5はAMDなんだな
2020/12/30(水) 01:28:02.70ID:ojaVEyJL
ほしゆ(・ω・)
2020/12/31(木) 08:09:56.84ID:qAEGulJg
>>979
まれにあるのか?よくあることなのか?どっちでもいいが
2020/12/31(木) 12:53:32.07ID:pMMrEBim
>>986
掲示板初心者か?
2021/01/01(金) 08:45:04.14ID:ZYHKNI/v
2021/01/01(金) 09:25:56.97ID:Sutdgdij
初心者スレで上級者気取りか?
2021/01/01(金) 18:12:38.86ID:ADEdjdIz
2021/01/01(金) 19:03:44.66ID:sqmHJxPF
ほしゆ(・ω・)
2021/01/01(金) 20:06:32.68ID:9XtueUbf
いやもう次立てる所やろ
2021/01/02(土) 07:31:18.88ID:wg370Djj
2021/01/02(土) 18:03:52.31ID:kSzgq5SE
2021/01/03(日) 06:33:21.26ID:qiwWktFe
2021/01/03(日) 18:36:17.00ID:GJkrCLRp
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
2021/01/04(月) 06:34:03.38ID:se2ZF3ue
2021/01/04(月) 17:11:09.20ID:4XmqFvVy
2021/01/04(月) 17:11:25.37ID:4XmqFvVy
2021/01/04(月) 17:11:46.52ID:4XmqFvVy
--- 終了 ---
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1361日 23時間 35分 51秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況