FC2ブログ

制作日記

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

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

トップ

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

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

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

MUGEN用プロセスメモリリーダ、memRead 最終更新 2013/11/17
memRead.ico
CUIアプリです、普通にアイコンをダブルクリックでも起動できます

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

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

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

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

続きを読む

スポンサーサイト

Fate HF 第II章

やっぱ、最高だったわ。。。

今回もじっくりねっとり桜が描かれていて良かったぞ

fvarとかの数値ズレ

https://sinomugen.blog.fc2.com/blog-entry-232.html
https://sinomugen.blog.fc2.com/blog-entry-186.html
fvar:=で少数を代入しようとすると何故かアドレスが書き換えられる?
0x407f7bの「call 004922ac」で呼んでる関数が原因っぽいけどイマイチ処理追えんかったのでよくわからん


call 004922acのサブルーチンは浮動小数点数を64bit整数に変換して、EAX/EDXに入れている。
で、変換後の整数からEAX = 下32bitを取り出して範囲チェックしてる。
# 004922acの説明は末尾に載せとく。

代入位置の値が変換前は単精度だから、誤差が出てるとかじゃないかな。
代入する値を整数にしたら起こらないけど、本末転倒というか今度は代入する値がズレる問題が起こる。

fvarの括弧内には浮動小数点数が入らないから変換処理不要なはず、つまりMUGENの演算処理が原因。
ザックリ言うと、演算を行う際にどちらかのオペランドが小数なら、小数でない方のオペランドも単精度浮動小数点数に変換している。
四則演算とかなら両オペランドの小数/整数を揃える必要があるけど、fvarなら不要。
むしろ、代入する位置は整数でなければならないから無駄でしかない。
各種演算のオペランド読み込み処理を共通化している都合なんだけど、なんというかダサい。

以下で出てくるFPUってのはfloating point unitって言う浮動小数点数を処理する専用の装置のこと。
浮動小数点専用に命令とかレジスタとかが用意されている。

004079EF |. DB4424 24 |FILD DWORD PTR SS:[ESP+24]
004079F3 |. D95C24 18 |FSTP DWORD PTR SS:[ESP+18]

整数で保存している値を小数に変換してるところ。
FILDで整数をFPUレジスタに積んで小数に変換させて、FSTPで単精度浮動小数点でメモリに格納。
ここでDWORD指定している=4byteだから単精度の浮動小数点数に変換していることになる。


00407F77 |. D94424 18 |FLD DWORD PTR SS:[ESP+18]
00407F7B |. E8 2CA30800 |CALL winmugen.004922AC
00407F80 |. 8BD8 |MOV EBX,EAX
00407F82 |. 895C24 24 |MOV DWORD PTR SS:[ESP+24],EBX
00407F86 |> 85DB |TEST EBX,EBX
00407F88 |. 7C 1F |JL SHORT winmugen.00407FA9
00407F8A |. 83FB 28 |CMP EBX,28


さっきと逆変換で[ESP+18]の小数を整数に変換して0~28の範囲チェックをしている。
FLDでFPUレジスタに積んで、004922AC呼び出し。
変換した整数の下32bitが入っているEAXの値を確認して範囲チェック。

以下、004922acの説明。WAITとLEAVEはお作法だから無視して良い。

004922AC /$ 55 PUSH EBP
004922AD |. 8BEC MOV EBP,ESP
004922AF |. 83C4 F4 ADD ESP,-0C
004922B2 |. 9B WAIT
004922B3 |. D97D FE FSTCW WORD PTR SS:[EBP-2] #FPU制御ワードを[EBP-2]に格納。
004922B6 |. 9B WAIT
004922B7 |. 66:8B45 FE MOV AX,WORD PTR SS:[EBP-2] #AXに取り出して。
004922BB |. 80CC 0C OR AH,0C #丸めモードを0方向への切り捨ての値にして。
004922BE |. 66:8945 FC MOV WORD PTR SS:[EBP-4],AX # [EBP-4]に格納。
004922C2 |. D96D FC FLDCW WORD PTR SS:[EBP-4] # それをFPU制御ワードに設定(要は小数点以下切り捨てで整数に変換する用の丸めモード変更)
004922C5 |. DF7D F4 FISTP QWORD PTR SS:[EBP-C] # FPUレジスタの小数を整数に変換して[EBP-C]に格納、丸めモードにしたがって小数点以下切り捨て。
004922C8 |. D96D FE FLDCW WORD PTR SS:[EBP-2] # FPU制御ワードを元に戻す。
004922CB |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] # 戻り値を格納(8byte整数だからレジスタ2個使う)
004922CE |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] # 戻り値を格納(8byte整数だからレジスタ2個使う)
004922D1 |. C9 LEAVE
004922D2 \. C3 RETN


proxomitron

niconicoがhttps化で運用するの諦めた

メインブラウザはEdge使ってるけど、niconicoはfirefoxでしか見ない
やりたいこともjs埋め込んでショートカットキーを数個追加するだけ
ならaddonで良いんじゃね?

ってことで、addonに移行
https://github.com/drab-l/nico_prox

広告消しとかも、そのうち追加しとくか
proxomitronのフィルターみたいに設定外だし出来るようにしないとだから
そこらへんのやり方を読むとこからだけど

世界樹の迷宮X

図鑑100%、勲章埋めも全部終わり
面白かったんじゃないでしょうか

QRでガンナー増殖させたりはしたけど
結局は初期PTメンバのブソパ/メガからガを増やしたりで、ほぼクリア
ガンナー強すぎない?
ソドの殺戮フルブレイクも強いし、ブシも後列から空刃振ってるだけで強いけどさ

三竜は一応初期PTで倒したけど、レア泥収集はガン3+ソド、パラ
裏ダンのFOEも同じくガン3+ソド、パラ
裏ボスはガン5で倒して
真ボスはガン4+パラ

他に使った職業は
採集でファーマーとレンジャー
レア泥でリーパーとシノビ
レベリングでショーグン

ギルメンには各職3人ずつくらい入れて全員130引退130にはしたけど、結局他は使わなかったかな

ガンナー所感
2の至高の魔弾って外れることもあったような気がするし
ガンで5ターン幼子の動き止められたところでHP削りきるなんて到底無理だったんだけど
今回はサブと武器スキルも相まって強い、良くも悪くもぶっ壊れてるよね
サブがなければ少しは真っ当なバランスだったかなとは思う
3以降のいつも通りのバランスだし、今更だけどね
プロフィール

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

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。