制作日記

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

雑記

追記
なんか他でも書いた気がしないでもないが、もうちょい丁寧に書くわ

stetedefのラベル名を読み込む領域がスタック上に一定量しか用意しないことを利用して
ラベル名をそれ以上の長さにすることでオーバーフローを発生させる
この時点でcnsがヒープに展開済みで、そのアドレスはスタック上に存在している
RET命令を実行したときにそこがリターンアドレスになるような
良い感じにesp弄ってRET叩くコードが既存のコード中に存在するので
オーバーフローでリターンアドレスをそこに差し替えると
そこに飛んで良い感じにespが弄られて、RETでcnsに埋め込んだコードに飛ぶ
あと、試合中のコード実行と違って、オーバーフローするのはサブスレッドだった気がするわ

正直、ステコン介さずコード埋め込むなら、cnsにこだわる必要性を感じない
自前のライブラリかexe動かせばええやん、そっちのほうが自由よ?

追記ここまで

cns内に埋め込んでおいたアセンブラを実行させる


def buffer overflowはこれぐらいしか書いてないな
http://drabs.blog40.fc2.com/blog-entry-1427.html#comment473

overflowについてだけならもっと前にも書いてるけど
cnsに埋め込んだコード実行する方法まで言及したのはここぐらい?

少なくとも、試合中にちょろっとコード実行するのに比べたら大分難易度高いと思うし
原理を聞いたら後は自分で出来ますってぐらいじゃないと、目的に合ったコードを完全自作するのは厳しいんじゃねーかな

他にちらっと見かけた疑問だと
%1021c%c%c%cJ@K
これの意味ぐらい?原理は十分すぎるぐらい書いてんだけどなぁ
http://drabs.blog40.fc2.com/blog-entry-970.html

> スタック上に数か所同じ文字列がぶち込まれてるから、そこのはみ出した分の補修が必要
実際に動作見てみたら補修必要なかったから、この1文だけは嘘だけど

以下、一応解説

%1021c%c%c%c
ここは1024文字ぴったり出力できれば、何でも良い
後ろ3つの%cは何の意味もない、色々弄ってた時のが残ってるだけ

J@K
は必須、アドレスの低いほうから順に0x4A,0x40,0x4B,0x00を書き込んで
リターンアドレスを0x004A404Bに差し替えてる

だから、DTCでコード書き込むときに先頭が0x4B404A=4931658なわけ
ここの書き込み場所をずらしたら当然J@Kも変える必要がある
0x4B404BならK@K
0x4B4030なら0@K
みたいに

def buffer overflowはクラック用途で言えば
キャラ選択が必要な時点で他と大して変わらんやろ
試合中でも良いからDEP回避のほうが有用?やし、あんま興味ない
読み込んだ瞬間にクラックとかだと良いね、sff辺りでできないかなー
ヒープ破壊ネタならあるけど、Windows10だと攻撃はキツイ
Windows XP以前とかみたいにガバガバならどうにかできるかもだが
XPなんて何年も前に捨てたよ

コメントの投稿

非公開コメント

No title

heap overflow
現在最速のoverflow。 xpにのみ適用されます
中国語を理解できないかもしれませんが、ここにその説明があります。
http://tieba.baidu.com/p/3759363434

ydccdy自身がhackerなので、このタイプのものに熟練しています。

No title

今更XPで出来ても仕方ないですし、実機もないので興味ないです
プロフィール

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

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