banner
毅种循环

毅种循环

头顶铁锅接收宇宙能量

微信小プログラムソフトウェアのリバースエンジニアリングについて

微信小プログラムソフトウェアのリバースエンジニアリング#

0x01#

最近、WeChat 小プログラムの逆コンパイルが必要になり、ツールを使用してみましたが、数日後に有料要求が表示されました。検証はかなり簡単だと感じました。解読してみましょう。

プログラムを実行すると、これはウィンドウ上のものですが、私は逆コンパイルに詳しくありません。私の理解に基づいて、このウィンドウを push できるかもしれないと思います。

image

0X02#

フォルダ内の pdb と DLL を見ると、おそらく C# で書かれていると推測できます。シェルについて調べてみました。#

image

dnspy に投げて見てみましょう、

image

このソースコードとインターフェースは明らかに混乱しています。Net Reactor のシェルに非常に似ているように思えます。アンシェルを試してみましょう。

一般的な Net Reactor のアンシェルソリューションを使用してアンシェルに成功し、メインプログラムを再度ロードしてみましょう。

image

これでコードは正常になりました。

最初はメインプログラムで更新部分のコードを見つけられませんでしたが、後で Common.dll で見つけました(同様に混乱しているため、アンシェルが必要です)

image

ブレークポイントを設定してコードを実行し、終了時にどこで中断されるかを確認します。

image

多くのデータがサーバーにアップロードされることがわかりました。BIOS USER ネットワークカード ID マザーボード番号 CPU モデルなどの情報が含まれているため、おそらく支払い後の状態確認に使用されていると推測されます。

支払いページを開くと、変数は true になります。直接終了すると false になります。このメソッドを検索して、そのコードを見てみましょう。

image

image

プログラムの更新もこのコードの一部で行われており、ロジックも非常にシンプルです。

code フラグが使用され、code が - 45 の場合はスポンサーウィンドウが開かれ、0 の場合は次のステップに進みます。

このように、クラックのアプローチも非常に簡単です。この部分の判断をすべて nop に変更し、最後に 0 を埋めて元のコードが保持され、検証ロジックを通過できるようにします。

image

image

完了。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。