制作日記

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

トップ

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

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は続きへ追いやられました

続きを読む

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ぐらい目を通した方が良いんじゃないですかねえ

続きを読む

続、ステート探査

> ステートの数わかるし、各ステートのステコンの数もわかるし、ステコンの種別もわかる

他に割と簡単なのは、ステコン種別と一緒にignorehitpauseとpersistentも取れるぐらいか
さくっと取れるのはこのあたりが限度かな

ステート絡みだと他はちょっと思いつかん
定数以外の部分の取得は面倒だし
キャラというかcnsの記述で取得して有効活用するのは現実的でないかな

cns以外にもanimとかclsnとか記述した定数そのままの情報の取得は大概簡単なんじゃね
anim関連の構造は完全に忘れたけど、追うのは大して難しくなかったはず

ステート探査

http://samsara01.blog.fc2.com/blog-entry-19288.html

ステートの数わかるし、各ステートのステコンの数もわかるし、ステコンの種別もわかる
memReadでやってるで

ソース見る感じ、ステートの数は
[[[キャラアドレス + 0xbe8 ]] + 0x8]
かな?

ステコンは説明面倒、memReadのソース読めればわかる
くっそ面倒でmemReadには実装してないけど、トリガーもわかるで
そこらへんまでの構造は解析済みや
プロフィール

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

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