制作日記

こういうの作った方が、逃げにくいじゃない

トップ

トップ
※申し訳ないですが、メールでの返信は出来ません。

DEP回避して任意コード実行
_reimu_ver191.ico

DTCリターンアドレス改竄テストキャラ(ver0.7xとは別物です)
_reimu_ver181.ico

ESC利用、凍結無しヌルヌル、テストキャラ
_reimu_ver130.ico
↑の記述ミス直して、ついでに親捏造搭載したキャラ
_reimu_ver143.ico

暇つぶしに作ってみた、全領域親変更、邪眼、色々maker 最終更新 2013/05/04
nullver4_4.ico

GUI非対応、CUIソフトなのでコマンドプロンプトから実行して下さい
ダブルクリックして実行しても、全領域親変更生成しか出来ません

MUGEN用プロセスメモリリーダ、memRead 最終更新 2013/11/17
memRead.ico

色々maker同様、CUIアプリです
こっちは、普通にアイコンをダブルクリックでも起動できます

リンクを右クリックして、「対象をファイルに保存」からダウンロード
ファイルの拡張子をrarに変えてから解凍してください

MUGENステコン入力支援マクロ
入力補完、短縮表記機能有り版(取説)
stateControl_2.js
入力補完、短縮表記機能なし版
stateControl_1.js
使い方とかはjsの先頭に書いてあるので、メモ帳で開くなりして読んでください

バグ報告等々コメントして頂けると助かります
公開物とそれらに関する情報の利用は、内容に依らず自由にして頂いて問題ないです

過去verは続きへ追いやられました

続きを読む

クソコードをリファクタリング

そろそろ、広告出そうなんで
MUGENはなんか気になったのあったら調べるわ


http://blue1st.hateblo.jp/entry/2016/08/23/235506

衝撃的だった、リファクタリング結果のほうが糞やんけ
褒められる点はdrawの判定方法だけなんだよなあ
これはクソだと思ってるけど、リファクタリングとして適切であるなら
後学のためにどこが良いのか教えてほしいわ
jsもperlもよく知らんが、それでもこれはクソコードやなって思った

勝敗結果を標準出力に吐かずに文字列を返す点
実行結果変えておいて、リファクタリング名乗るのやめてもらえません?
関数も小さいのに可搬性とか考慮されてもなあ、必要になった時に書いたほうが早いよね
文字列返すのも標準出力に出力するのもテストの手間は大してかわらんというか
適切に判定できることに加えて、適切に結果が"出力されること"のテストが必要
ユースケースもわからん状態で敢えてやる必要性は感じない

「# 前の手に勝つ順番でリストを記述」の部分
リスト弄れば手が増えても対応できるとか拡張性考えてるのか知らんが
これからハッシュ作成してっていうのは3手だから可能なのであって
RPS7とか手が増えると成立しないんですが

「# 手をキーとしたとき、負ける手が取れるようにする」
変化しないhashを毎回動的に作成するという、汚物まき散らしクソコード
こんなもん静的かつROで持っとくべきなんだよなあ
生成用のリストをハードコーディングしてるなら
リストを書かずに、hash生成自体をハードコーディングしたほうが遥かにマシ
スマートに書いたつもりがアホコード書いてる典型例

おかげでじゃんけんというくっそ簡単な処理なのに
ぱっと見でじゃんけんだと理解できないクソコード
これコードレビューで出されたら、一から書き直させる

自分が実装するならCになっちゃうけど
普通に初めのコード書く or 2次元配列で勝敗のリストを静的に持っておいて、それ参照
配列定義するとこで丁寧にコメント書いておけばええ話やし?

GAのジャンケン十三奥義みたいな、ふざけた手を考慮せず
一定の関係性を保って手が増える前提なら、各手と勝敗の関係性を書くかな
RPS7なら、Rock、Water、Air、Paper、Sponge、Scissors、Fireやろ
どっかの円形になってる図を見ればわかるけど
自身の手から時計回り3つに負ける、その次の3つに勝つ、自分はあいこっていう関係
ちょっと一手間いるけど、各手に番号振って、差分取るだけやで

3手ならくっそ簡単
グー、チョキ、パーに0、1、2と番号振って、自身の手をa、相手の手をbとすると
a == bならあいこ、(a+1)mod3== b なら勝ち、他の(a+2)mod3== bは負け

それがどうしてあんなクソコードになるんですかね

シン・ゴジラ

見てきた、すっげー面白かったぞ

不満がないわけではない
序盤のゴジラ"以外"のCGがお世辞にも出来が良いとは言い難かったり
怪物プロレスを期待して見に行くと肩透かし食らったり
某アニメのBGMが使われて、ちょっと萎えたり
でも、それぐらい

BGMは伊福部サウンドがあるから概ね期待通り
その他諸々は書くとネタバレになるからね
ほんと面白いし凄い作品だったわ

あとスタッフロール見てたけどVFXは白組やねんな、さすがの出来やった
東映、タツノコ、カラー、白組、サムライピクチャーズ辺りのCGほんとすこ
代表的?なアニメ作品はそれぞれプリキュア、プリパラ、エヴァ、えとたま、アイカツとかかね
プリパラのCGは良いものだ、直近2話のガァルマゲドンのライブとか紆余曲折あって感動モノやで

gethitvarのアドレス 追記

下のgethitvarのアドレス、yvelだけHitvel Yと共通化されてるせいで離れてたわ
0047BE5A  |> 8B86 5C100000  MOV EAX,DWORD PTR DS:[ESI+105C]          ;  Case 12 of switch 0047C087
0047BE60 |. 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
0047BE64 |. E9 A1100000 JMP winmugen.0047CF0A

gethitvarのアドレス

静的解析やけど、場所はあってるやろ

まとめるの面倒だから、該当箇所貼り付け
長いから続き、こっちには抜粋して解説だけ書いとく

内容はcnsの読み込みと、トリガー参照(値の取得)の2つ
cnsの読み込み、(cnsのテキストからIDへの変換処理)
* Possible string reference 4ADB60h "xveladd"
| ;"xveladd"って文字列が アドレス0x4ADB60に置いてある。
00478F12 BF60DB4A00 mov edi, 004ADB60h ;それを取得して
00478F17 8DB4245C010000 lea esi, [esp+0000015Ch]
00478F1E B908000000 mov ecx, 00000008h ;8文字分だけ
00478F23 33D2 xor edx, edx
00478F25 F3A6 repe cmpsb ;比較
00478F27 7509 jne 00478F32h ;一致しなかったら終わり
00478F29 89542434 mov [esp+34h], edx
;一致したら数値に変換(edxの中身は0)
;この値がgethitvarの種類ごとのID、yveladdなら1
;他はedxとかじゃなくて即値指定してあるから、続きのコード見れ
00478F2D E9E6040000 jmp 00479418h


で、値の取得
0047C084  |> 8B43 1C        MOV EAX,DWORD PTR DS:[EBX+1C]            ;  Case B4 of switch 0047B18C
0047C087 |. 83F8 23 CMP EAX,23 ; Switch (cases 0..23)
0047C08A |. 0F87 22020000 JA winmugen.0047C2B2
0047C090 |. FF2485 F4D3470>JMP DWORD PTR DS:[EAX*4+47D3F4]
;ここらへんはgethitvarの種類IDごとに処理振り分けてるだけ
0047C097 |> 8B96 0C100000 MOV EDX,DWORD PTR DS:[ESI+100C] ; Case 0 of switch 0047C087
;IDが0のケース(xveladd)で、ESI+0x100C、ESIがキャラのIDっぽいからxveladdはキャラアドレス+0x100Cに記録されてる
0047C09D |. 895424 40 MOV DWORD PTR SS:[ESP+40],EDX
0047C0A1 |. E9 640E0000 JMP winmugen.0047CF0A
0047C0A6 |> 8B96 10100000 MOV EDX,DWORD PTR DS:[ESI+1010] ; Case 1 of switch 0047C087
;IDが1のケース(yveladd)で、キャラアドレス+0x1010に記録されてる
0047C0AC |. 895424 40 MOV DWORD PTR SS:[ESP+40],EDX
0047C0B0 |. E9 550E0000 JMP winmugen.0047CF0A


ざっと調べた感じで、あんまり解説が見当たらないのがあった
fall.time //elecbyteの公式docに名前載ってるけど、詳細は書いてなかった
fall.envshake.dir //海外のforumとかで見かけただけで公式docにも載ってなかった

CNS仕様まとめてるサイト何個か見たけど載ってない、ホンマつっかえんわ
せめて公式docぐらい目を通した方が良いんじゃないですかねえ

続きを読む

プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク