[過去ログ] 5ちゃんねる用ブラウザ「Live5ch」part163 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
979: 2022/08/27(土)15:19 ID:91QEp5Ms0(3/3) AAS
>>953
ヒントありがとうございました。消せました。
980: 2022/08/27(土)15:25 ID:uFEtVITE0(3/3) AAS
>>976
サンクス
規制を設けてるので書き込みできませんとか出てきた
金払えって事なんだろうか?
981
(2): 2022/08/27(土)15:35 ID:45oAUBkl0(1/7) AAS
>>973
ありがとうございます
お陰様で無事達成し好奇心を満たせました
55 8B EC 83 EC が広告処理のバイナリなんですね
そして >>953 の 「1.58用」 が間違っているのも分かりましたw
55 8B EC 83 EC を検索してアドレスを見付けるのは簡単ですが
その位置を指し示す E9 のあとに続く相対アドレスを探すなんてバイナリエディタ+手作業では大変過ぎですね
皆さんスクリプトか何かで見付けるのでしょうか?
この度は丁寧に解説して頂きまして大変勉強になりました
本当にありがとうございました
982: 2022/08/27(土)15:42 ID:jASO9Ma90(1) AAS
デバッガ使わんと無理
983: 2022/08/27(土)15:51 ID:45oAUBkl0(2/7) AAS
いや簡単じゃ無いわ。。55 8B EC 83 EC いっぱいあるから特定難しい。。
984
(1): 2022/08/27(土)15:56 ID:Gv6m6h2n0(1/2) AAS
あどなっし使えばいいじゃん
985: 2022/08/27(土)16:07 ID:45oAUBkl0(3/7) AAS
>>984
広告消したい訳じゃ無いんですよね
リソースハッカーで部品置き換えたりバイナリ書き換えで動作変えたりといった
「改造ネタ」が好きってだけの好奇心です
986
(2): 2022/08/27(土)16:51 ID:tUT0Aj0H0(1/3) AAS
>>981
たとえばバイナリを逆アセンブルすると

1.52
00026EFF E9 AC 50 11 00 → JMP 0013BFB0h
1.57
00027417 E9 44 53 11 00 → JMP 0013C760h
1.58
000272F7 E9 34 57 11 00 → JMP 0013CA30h

みたいに相対値から算出された実際のアドレスで表示されるから
あとはそれに対して広告処理のアドレスで検索を掛ければ…
987
(1): 2022/08/27(土)17:20 ID:KsL83OlY0(1) AAS
>>981
<ヒント>
広告処理とはつまり
外部リンク:tkssp.com
の画像を表示する処理
988
(1): 2022/08/27(土)18:19 ID:45oAUBkl0(4/7) AAS
>>987
1.59 だと 0x000322FC にURLを見付けました
単純な文字列検索では見付けられずStirling目視で。。
これを読んでる先を逆アセってやつで探す感じでしょうか
逆アセの方はまださっぱりですが
989
(1): 2022/08/27(土)18:40 ID:tUT0Aj0H0(2/3) AAS
>>988
文字コードは一部の例外を除いて基本的にUTF16なので
Stringで検索する時もキャラクターセットをUnicodeに指定しておけば
普通に検索できますよ

1.52だと0x000318ECにURLがありますが
exeがメモリ上にロードされる位置は0x0040000なので
メモリ上での実際のアドレスは0x004318ECになります

例えばこのアドレスのバイナリ列「EC 18 43 00」を検索すれば
URL文字列を参照しているコードが見つかる訳です
990: 2022/08/27(土)18:48 ID:tUT0Aj0H0(3/3) AAS
0がいっこ少なかった
× 0x0040000
〇 0x00400000
991: 2022/08/27(土)20:04 ID:8t5scH9t0(1) AAS
>>939
ありがとうございます。感謝です
そんなとこにあるとは気が付かなかった・・・
992
(2): 2022/08/27(土)20:11 ID:45oAUBkl0(5/7) AAS
>>989
ありがとうございます。自分でも出来そうな気になって来ました
①文字コード:Unicode で 外部リンク:tkssp.com を検索 (1.52: 0x000318EC)
②0x00400000 + ①のアドレス (1.52: 0x004318EC) をリトルエンディアンにしたバイナリ値 (1.52: EC 18 43 00) で検索 (1.52だと5箇所ヒット)
③検索2個目、或いは 0x0013**** 辺りで ヒットした箇所の直ぐ上辺りで バイナリ値"90"が連続した直後に "55 8B EC 83 EC 0C 68" が広告処理のアドレス
④そこにJMPを示している"E9"から続く相対アドレスのバイナリ値を E9含め3Byte "C20800" で上書き
と覚えました
広告処理かどうかを読むのとそこへの相対アドレスを知るには逆アセのソフトと知識が必要なようですね
でもコレだけでも、大きく変わったりしなければ十分に特定出来るかも?
993: 2022/08/27(土)20:26 ID:Xcl8JO390(1/3) AAS
>>986の説明を読み返して後から気づいたけど

> 1.52
> 00026EFF E9 AC 50 11 00 → JMP 0013BFB0h

とかは0x00400000を考慮していなかったので、正確には

1.52
00426EFF E9 AC 50 11 00 → JMP 0053BFB0h

って書くべき内容でした
省3
994: 2022/08/27(土)20:27 ID:Xcl8JO390(2/3) AAS
失礼、ゴミがついてしまった
995: 2022/08/27(土)20:29 ID:Yi8+9UQZ0(1) AAS
エンデアンうそつかない
996
(1): 2022/08/27(土)20:39 ID:Xcl8JO390(3/3) AAS
>>992
実際にメインルーチンから広告処理ルーチンから呼ぶ時の流れでいうと
メインルーチンから直接広告処理ルーチンを呼ばずに

(1)メインルーチンから広告処理(にジャンプするテーブル)をコール
(2)ジャンプテーブル(>>986)から広告処理ルーチンにジャンプ(E9******)
(3)広告処理ルーチン実行
(4)広告処理ルーチンの最後でメインルーチンにリターン(C20800)

って感じでVBの処理の都合で(2)がワンクッション間に挟まっています
でまぁ、ジャンプテーブルをリターン(C20800)に書き換える事によって
広告処理ルーチンにジャンプさせずにメインルーチンに戻るようにしてる訳ですが
省6
997: 2022/08/27(土)20:49 ID:Gv6m6h2n0(2/2) AAS
いつまでもスレチなことしてないで次スレ立てろ馬鹿め
998: 2022/08/27(土)20:57 ID:OfUQIaW90(1) AAS
アイコンの変え方のほうがありがたいわw
1-
あと 4 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s