c8-20251031_002439|c8all_merged

[source] c8-20251031_002439|c8all_merged.txt

LOGDIR=D:\work\logs\c8-20251031_002439

TIME: 2025-10-31 00:26:22
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" devices -l
---- OUTPUT ----
List of devices attached

---- END (Status=True) ----

TIME: 2025-10-31 00:26:45
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" devices -l
---- OUTPUT ----
List of devices attached
emulator-5554 device product:sdk_gphone64_x86_64 model:sdk_gphone64_x86_64 device:emu64xa transport_id:2

---- END (Status=True) ----

TIME: 2025-10-31 00:28:01
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
install -r "D:\5618assignment3apks\challenge_8.apk"
---- OUTPUT ----
Performing Streamed Install
Success
---- END (Status=True) ----

TIME: 2025-10-31 00:28:06
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 logcat -c
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:28:13
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
shell monkey -p com.example.catchthem -c android.intent.category.LAUNCHER 1
---- OUTPUT ----
bash arg: -p
bash arg: com.example.catchthem
bash arg: -c
bash arg: android.intent.category.LAUNCHER
bash arg: 1
args: [-p, com.example.catchthem, -c, android.intent.category.LAUNCHER, 1]
arg: "-p"
arg: "com.example.catchthem"
arg: "-c"
arg: "android.intent.category.LAUNCHER"
arg: "1"
data="com.example.catchthem"
data="android.intent.category.LAUNCHER"
** No activities found to run, monkey aborted.
---- END (Status=True) ----

TIME: 2025-10-31 00:28:20
CMD : & "C:\Tools\apktool\apktool.bat" d -f `
"D:\5618assignment3apks\challenge_8.apk" `
-o "D:\work\challenge8_apktool"
---- OUTPUT ----
I: Using Apktool 2.9.3 on challenge_8.apk
I: Loading resource table...
I: Decoding file-resources...
I: Loading resource table from file: C:\Users\ROBO-HEAD\AppData\Local\apktool\framework\1.apk
I: Decoding values */* XMLs...
I: Decoding AndroidManifest.xml with resources...
I: Regular manifest package...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
Press any key to continue . . .
---- END (Status=True) ----

TIME: 2025-10-31 00:28:31
CMD : & "C:\Tools\jadx\bin\jadx-gui.bat" "D:\5618assignment3apks\challenge_8.apk"
---- OUTPUT ----
INFO - output directory: challenge_8
INFO - loading ...
INFO - Found new jadx version: 1.5.3
jadx-1.5.3.zip, size: 111.21MB, downloads count: 31533, url: https://github.com/skylot/jadx/releases/download/v1.5.3/jadx-1.5.3.zip, date: 2025-09-08T18:30:33Z
jadx-gui-1.5.3-win.zip, size: 111.23MB, downloads count: 31299, url: https://github.com/skylot/jadx/releases/download/v1.5.3/jadx-gui-1.5.3-win.zip, date: 2025-09-08T18:30:33Z
jadx-gui-1.5.3-with-jre-win.zip, size: 142.50MB, downloads count: 40956, url: https://github.com/skylot/jadx/releases/download/v1.5.3/jadx-gui-1.5.3-with-jre-win.zip, date: 2025-09-08T18:30:33Z
INFO - Loaded classes: 7574, methods: 57361, instructions: 1340150
INFO - Resetting disk code cache, base dir: C:\Windows\null\skylot\jadx\cache\projects\challenge_8-3e15601a4e4ed2dcfb8d913d6a9e2bdb\code
---- END (Status=True) ----

TIME: 2025-10-31 00:29:04
CMD : (Get-Content "D:\work\env_notes_ch8.md") + @"
- 2025-10-31 00:26:模拟器 emulator-5554 已连接。
- 2025-10-31 00:27:准备安装并分析 challenge_8.apk。
"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
Get-Content:
Line |
2 | (Get-Content "D:\work\env_notes_ch8.md") + @"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\work\env_notes_ch8.md' because it does not exist.
---- END (Status=True) ----

TIME: 2025-10-31 00:30:41
CMD : @"
# Challenge 8 环境备忘

- 2025-10-31 00:26:模拟器 emulator-5554 已连接。
- 2025-10-31 00:27:准备安装并分析 challenge_8.apk。

"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:30:46
CMD : Select-String -Pattern 'manifest package=' -Path "D:\work\challenge8_apktool\AndroidManifest.xml"
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:30:50
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
shell monkey -p com.example.catchthem -c android.intent.category.LAUNCHER 1
---- OUTPUT ----
bash arg: -p
bash arg: com.example.catchthem
bash arg: -c
bash arg: android.intent.category.LAUNCHER
bash arg: 1
args: [-p, com.example.catchthem, -c, android.intent.category.LAUNCHER, 1]
arg: "-p"
arg: "com.example.catchthem"
arg: "-c"
arg: "android.intent.category.LAUNCHER"
arg: "1"
data="com.example.catchthem"
data="android.intent.category.LAUNCHER"
** No activities found to run, monkey aborted.
---- END (Status=True) ----

TIME: 2025-10-31 00:30:59
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
shell pidof com.example.catchthem
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:31:32
CMD : Get-Content -Path "D:\work\challenge8_apktool\AndroidManifest.xml" -TotalCount 20
---- OUTPUT ----

---- END (Status=True) ----

TIME: 2025-10-31 00:31:35
CMD : Get-ChildItem "D:\work\challenge8_apktool"
---- OUTPUT ----

Directory: D:\work\challenge8_apktool

Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/31 0:28 lib
d---- 2025/10/31 0:28 original
d---- 2025/10/31 0:28 res
d---- 2025/10/31 0:28 smali
d---- 2025/10/31 0:28 smali_classes2
d---- 2025/10/31 0:28 unknown
-a--- 2025/10/31 0:28 1542 AndroidManifest.xml
-a--- 2025/10/31 0:28 20728 apktool.yml

---- END (Status=True) ----

TIME: 2025-10-31 00:31:45
CMD : (Get-Content "D:\work\env_notes_ch8.md") + @"
- 2025-10-31 00:31:确认包名:<实际包名>。
"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:32:11
CMD : @"
# Challenge 8 环境备忘

- 2025-10-31 00:26:模拟器 emulator-5554 已连接。
- 2025-10-31 00:27:准备安装并分析 challenge_8.apk。
- 2025-10-31 00:31:确认包名:com.example.seven。
"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:32:13
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
shell monkey -p com.example.seven -c android.intent.category.LAUNCHER 1
---- OUTPUT ----
bash arg: -p
bash arg: com.example.seven
bash arg: -c
bash arg: android.intent.category.LAUNCHER
bash arg: 1
args: [-p, com.example.seven, -c, android.intent.category.LAUNCHER, 1]
arg: "-p"
arg: "com.example.seven"
arg: "-c"
arg: "android.intent.category.LAUNCHER"
arg: "1"
data="com.example.seven"
data="android.intent.category.LAUNCHER"
Events injected: 1
## Network stats: elapsed time=108ms (0ms mobile, 0ms wifi, 108ms not connected)
---- END (Status=True) ----

TIME: 2025-10-31 00:32:16
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
shell pidof com.example.seven
---- OUTPUT ----
11882
---- END (Status=True) ----

TIME: 2025-10-31 00:32:19
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
logcat --pid 12345 -d
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:33:57
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
logcat --pid 11882 -d
---- OUTPUT ----
--------- beginning of main
10-30 13:32:13.452 11882 11882 I Zygote : Process 11882 created for com.example.seven
10-30 13:32:13.453 11882 11882 I m.example.seven: Using CollectorTypeCMC GC.
10-30 13:32:13.455 11882 11882 W m.example.seven: Unexpected CPU variant for x86: x86_64.
10-30 13:32:13.455 11882 11882 W m.example.seven: Known variants: atom, sandybridge, silvermont, goldmont, goldmont-plus, goldmont-without-sha-xsaves, tremont, kabylake, alderlake, default
10-30 13:32:13.467 11882 11882 D nativeloader: Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok
10-30 13:32:13.539 11882 11882 D nativeloader: Configuring clns-9 for other apk /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk. target_sdk_version=32, uses_libraries=, library_path=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/lib/x86_64:/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.example.seven
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: Currently set values for:
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_pkgs=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_values=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in per-application setting
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: ANGLE allowlist from config: com.dreamgames.royalmatch com.dts.freefiremax com.dxx.firenow com.gramgames.mergedragons com.ludo.king com.mojang.minecraftpe com.my.defense com.nintendo.zaka com.os.airforce com.playrix.fishdomdd.gplay io.teslatech.callbreak jp.konami.prospia net.peakgames.toonblast
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in ANGLE allowlist or settings, returning default
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
--------- beginning of system
10-30 13:32:13.595 11882 11897 I DisplayManager: Choreographer implicitly registered for the refresh rate.
10-30 13:32:13.615 11882 11882 D DesktopExperienceFlags: Toggle override initialized to: false
10-30 13:32:13.626 11882 11882 E ashmem : Pinning is deprecated since Android Q. Please use trim or other methods.
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv1_CM_emulation.so
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv2_emulation.so
10-30 13:32:13.684 11882 11882 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET
10-30 13:32:13.687 11882 11897 W HWUI : Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
10-30 13:32:13.688 11882 11897 W HWUI : Failed to initialize 101010-2 format, error = EGL_SUCCESS
10-30 13:32:13.810 11882 11882 W HWUI : Unknown dataspace 0
10-30 13:32:13.844 11882 11882 D VRI[MainActivity]: WindowInsets changed: 1080x2400 statusBars:[0,63,0,0] navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:13.844 11882 11882 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.view.ViewRootImpl$$ExternalSyntheticLambda12@803522
10-30 13:32:13.845 11882 11882 I HWUI : Using FreeType backend (prop=Auto)
10-30 13:32:14.481 11882 11882 D InsetsController: hide(ime())
10-30 13:32:14.481 11882 11882 I ImeTracker: com.example.seven:2f5f7082: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:14.604 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:null mandatorySystemGestures:[0,0,0,84]
10-30 13:32:14.702 11882 11882 D VRI[MainActivity]: visibilityChanged oldVisibility=true newVisibility=false
10-30 13:32:15.886 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:null mandatorySystemGestures:null
10-30 13:32:16.066 11882 11882 D InsetsController: hide(ime())
10-30 13:32:16.066 11882 11882 I ImeTracker: com.example.seven:877f9d21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:16.838 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:[0,63,0,0] mandatorySystemGestures:[0,63,0,0]
10-30 13:32:18.805 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:35.338 11882 11887 W m.example.seven: userfaultfd: MOVE ioctl seems unsupported: Connection timed out
10-30 13:32:35.344 11882 11889 W System : A resource failed to call release.
---- END (Status=True) ----

TIME: 2025-10-31 00:34:04
CMD : Get-ChildItem -Path "D:\work\challenge8_apktool" -Recurse -File |
Select-String -Pattern "COMP5618" -SimpleMatch
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:34:09
CMD : (Get-Content "D:\work\env_notes_ch8.md") + @"
- 2025-10-31 00:32:应用进程 PID=11882。
"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:35:36
CMD : Get-ChildItem "D:\work\challenge8_apktool\assets"
---- OUTPUT ----
Get-ChildItem:
Line |
2 | Get-ChildItem "D:\work\challenge8_apktool\assets"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\work\challenge8_apktool\assets' because it does not exist.
---- END (Status=True) ----

TIME: 2025-10-31 00:35:41
CMD : Get-ChildItem "D:\work\challenge8_apktool\res\raw"
---- OUTPUT ----
Get-ChildItem:
Line |
2 | Get-ChildItem "D:\work\challenge8_apktool\res\raw"
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\work\challenge8_apktool\res\raw' because it does not exist.
---- END (Status=True) ----

TIME: 2025-10-31 00:35:43
CMD : Get-Content "D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali" -TotalCount 200
---- OUTPUT ----
.class public Lcom/example/seven/MainActivity;
.super Landroidx/appcompat/app/AppCompatActivity;
.source "MainActivity.java"

# direct methods
.method public constructor ()V
.locals 0

.line 37
invoke-direct {p0}, Landroidx/appcompat/app/AppCompatActivity;->()V

return-void
.end method

.method static synthetic access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V
.locals 0

.line 37
invoke-direct {p0, p1}, Lcom/example/seven/MainActivity;->getdata(Ljava/lang/String;)V

return-void
.end method

.method public static decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/crypto/NoSuchPaddingException;,
Ljava/security/NoSuchAlgorithmException;,
Ljava/security/InvalidAlgorithmParameterException;,
Ljava/security/InvalidKeyException;,
Ljavax/crypto/BadPaddingException;,
Ljavax/crypto/IllegalBlockSizeException;
}
.end annotation

.line 94
invoke-static {p0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;

move-result-object p0

const/4 v0, 0x2

.line 95
invoke-virtual {p0, v0, p2, p3}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V

.line 96
invoke-static {}, Ljava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder;

move-result-object p2

.line 97
invoke-virtual {p2, p1}, Ljava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B

move-result-object p1

.line 96
invoke-virtual {p0, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B

move-result-object p0

.line 98
new-instance p1, Ljava/lang/String;

invoke-direct {p1, p0}, Ljava/lang/String;->([B)V

return-object p1
.end method

.method private getdata(Ljava/lang/String;)V
.locals 1

.line 73
new-instance p0, Ljava/lang/StringBuilder;

invoke-direct {p0}, Ljava/lang/StringBuilder;->()V

.line 75
:try_start_0
new-instance v0, Ljava/net/URL;

invoke-direct {v0, p1}, Ljava/net/URL;->(Ljava/lang/String;)V

.line 76
new-instance p1, Ljava/util/Scanner;

invoke-virtual {v0}, Ljava/net/URL;->openStream()Ljava/io/InputStream;

move-result-object v0

invoke-direct {p1, v0}, Ljava/util/Scanner;->(Ljava/io/InputStream;)V

.line 78
:goto_0
invoke-virtual {p1}, Ljava/util/Scanner;->hasNext()Z

move-result v0

if-eqz v0, :cond_0

.line 79
invoke-virtual {p1}, Ljava/util/Scanner;->nextLine()Ljava/lang/String;

move-result-object v0

.line 80
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

goto :goto_0

.line 82
:cond_0
invoke-virtual {p1}, Ljava/util/Scanner;->close()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

goto :goto_1

:catch_0
move-exception p0

.line 84
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V

:goto_1
return-void
.end method

# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 5

.line 41
invoke-super {p0, p1}, Landroidx/appcompat/app/AppCompatActivity;->onCreate(Landroid/os/Bundle;)V

.line 43
new-instance p1, Landroid/os/StrictMode$ThreadPolicy$Builder;

invoke-direct {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->()V

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;

move-result-object p1

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy;

move-result-object p1

.line 44
invoke-static {p1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V

const p1, 0x7f0f001b

.line 46
invoke-virtual {p0, p1}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object p1

const/16 v0, 0x10

new-array v1, v0, [B

.line 48
fill-array-data v1, :array_0

.line 49
new-instance v2, Ljavax/crypto/spec/SecretKeySpec;

const v3, 0x7f0f007b

invoke-virtual {p0, v3}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object v3

const/4 v4, 0x0

invoke-direct {v2, v1, v4, v0, v3}, Ljavax/crypto/spec/SecretKeySpec;->([BIILjava/lang/String;)V

new-array v0, v0, [B

.line 51
fill-array-data v0, :array_1

.line 52
new-instance v1, Ljavax/crypto/spec/IvParameterSpec;

invoke-direct {v1, v0}, Ljavax/crypto/spec/IvParameterSpec;->([B)V

const v0, 0x7f0b001c

.line 54
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->setContentView(I)V

const v0, 0x7f0800f8

.line 55
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->findViewById(I)Landroid/view/View;

---- END (Status=True) ----

TIME: 2025-10-31 00:35:46
CMD : Get-ChildItem "D:\work\challenge8_apktool\smali*" -Recurse -File |
Select-String -Pattern "SecretKeySpec"
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:35:48
CMD : Get-ChildItem "D:\work\challenge8_apktool\smali*" -Recurse -File |
Select-String -Pattern "MessageDigest"
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:36:45
CMD : Get-Content "D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali" -TotalCount 420
---- OUTPUT ----
.class public Lcom/example/seven/MainActivity;
.super Landroidx/appcompat/app/AppCompatActivity;
.source "MainActivity.java"

# direct methods
.method public constructor ()V
.locals 0

.line 37
invoke-direct {p0}, Landroidx/appcompat/app/AppCompatActivity;->()V

return-void
.end method

.method static synthetic access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V
.locals 0

.line 37
invoke-direct {p0, p1}, Lcom/example/seven/MainActivity;->getdata(Ljava/lang/String;)V

return-void
.end method

.method public static decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/crypto/NoSuchPaddingException;,
Ljava/security/NoSuchAlgorithmException;,
Ljava/security/InvalidAlgorithmParameterException;,
Ljava/security/InvalidKeyException;,
Ljavax/crypto/BadPaddingException;,
Ljavax/crypto/IllegalBlockSizeException;
}
.end annotation

.line 94
invoke-static {p0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;

move-result-object p0

const/4 v0, 0x2

.line 95
invoke-virtual {p0, v0, p2, p3}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V

.line 96
invoke-static {}, Ljava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder;

move-result-object p2

.line 97
invoke-virtual {p2, p1}, Ljava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B

move-result-object p1

.line 96
invoke-virtual {p0, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B

move-result-object p0

.line 98
new-instance p1, Ljava/lang/String;

invoke-direct {p1, p0}, Ljava/lang/String;->([B)V

return-object p1
.end method

.method private getdata(Ljava/lang/String;)V
.locals 1

.line 73
new-instance p0, Ljava/lang/StringBuilder;

invoke-direct {p0}, Ljava/lang/StringBuilder;->()V

.line 75
:try_start_0
new-instance v0, Ljava/net/URL;

invoke-direct {v0, p1}, Ljava/net/URL;->(Ljava/lang/String;)V

.line 76
new-instance p1, Ljava/util/Scanner;

invoke-virtual {v0}, Ljava/net/URL;->openStream()Ljava/io/InputStream;

move-result-object v0

invoke-direct {p1, v0}, Ljava/util/Scanner;->(Ljava/io/InputStream;)V

.line 78
:goto_0
invoke-virtual {p1}, Ljava/util/Scanner;->hasNext()Z

move-result v0

if-eqz v0, :cond_0

.line 79
invoke-virtual {p1}, Ljava/util/Scanner;->nextLine()Ljava/lang/String;

move-result-object v0

.line 80
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

goto :goto_0

.line 82
:cond_0
invoke-virtual {p1}, Ljava/util/Scanner;->close()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

goto :goto_1

:catch_0
move-exception p0

.line 84
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V

:goto_1
return-void
.end method

# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 5

.line 41
invoke-super {p0, p1}, Landroidx/appcompat/app/AppCompatActivity;->onCreate(Landroid/os/Bundle;)V

.line 43
new-instance p1, Landroid/os/StrictMode$ThreadPolicy$Builder;

invoke-direct {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->()V

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;

move-result-object p1

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy;

move-result-object p1

.line 44
invoke-static {p1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V

const p1, 0x7f0f001b

.line 46
invoke-virtual {p0, p1}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object p1

const/16 v0, 0x10

new-array v1, v0, [B

.line 48
fill-array-data v1, :array_0

.line 49
new-instance v2, Ljavax/crypto/spec/SecretKeySpec;

const v3, 0x7f0f007b

invoke-virtual {p0, v3}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object v3

const/4 v4, 0x0

invoke-direct {v2, v1, v4, v0, v3}, Ljavax/crypto/spec/SecretKeySpec;->([BIILjava/lang/String;)V

new-array v0, v0, [B

.line 51
fill-array-data v0, :array_1

.line 52
new-instance v1, Ljavax/crypto/spec/IvParameterSpec;

invoke-direct {v1, v0}, Ljavax/crypto/spec/IvParameterSpec;->([B)V

const v0, 0x7f0b001c

.line 54
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->setContentView(I)V

const v0, 0x7f0800f8

.line 55
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Lcom/google/android/material/button/MaterialButton;

.line 56
new-instance v3, Lcom/example/seven/MainActivity$1;

invoke-direct {v3, p0, p1, v2, v1}, Lcom/example/seven/MainActivity$1;->(Lcom/example/seven/MainActivity;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)V

invoke-virtual {v0, v3}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V

return-void

:array_0
.array-data 1
0x70t
0x32t
0x73t
0x35t
0x76t
0x38t
0x79t
0x2ft
0x42t
0x3ft
0x45t
0x28t
0x48t
0x2bt
0x4dt
0x62t
.end array-data

:array_1
.array-data 1
0x53t
0x68t
0x56t
0x6dt
0x59t
0x71t
0x33t
0x74t
0x36t
0x77t
0x39t
0x7at
0x24t
0x43t
0x26t
0x46t
.end array-data
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:36:48
CMD : Select-String -Path "D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali" -Pattern ":array_" -Context 1,20
---- OUTPUT ----

D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:165: .line 48
> D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:166: fill-array-data v1, :array_0
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:167:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:168: .line 49
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:169: new-instance v2, Ljavax/crypto/spec/SecretKeySpec;
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:170:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:171: const v3, 0x7f0f007b
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:172:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:173: invoke-virtual {p0, v3}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:174:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:175: move-result-object v3
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:176:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:177: const/4 v4, 0x0
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:178:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:179: invoke-direct {v2, v1, v4, v0, v3}, Ljavax/crypto/spec/SecretKeySpec;->([BIILjava/lang/String;)V
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:180:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:181: new-array v0, v0, [B
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:182:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:183: .line 51
> D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:184: fill-array-data v0, :array_1
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:185:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:186: .line 52
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:187: new-instance v1, Ljavax/crypto/spec/IvParameterSpec;
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:188:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:189: invoke-direct {v1, v0}, Ljavax/crypto/spec/IvParameterSpec;->([B)V
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:190:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:191: const v0, 0x7f0b001c
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:192:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:193: .line 54
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:194: invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->setContentView(I)V
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:195:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:196: const v0, 0x7f0800f8
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:197:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:198: .line 55
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:199: invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->findViewById(I)Landroid/view/View;
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:200:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:201: move-result-object v0
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:202:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:203: check-cast v0, Lcom/google/android/material/button/MaterialButton;
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:204:
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:213:
> D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:214: :array_0
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:215: .array-data 1
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:216: 0x70t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:217: 0x32t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:218: 0x73t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:219: 0x35t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:220: 0x76t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:221: 0x38t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:222: 0x79t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:223: 0x2ft
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:224: 0x42t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:225: 0x3ft
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:226: 0x45t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:227: 0x28t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:228: 0x48t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:229: 0x2bt
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:230: 0x4dt
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:231: 0x62t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:232: .end array-data
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:233:
> D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:234: :array_1
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:235: .array-data 1
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:236: 0x53t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:237: 0x68t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:238: 0x56t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:239: 0x6dt
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:240: 0x59t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:241: 0x71t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:242: 0x33t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:243: 0x74t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:244: 0x36t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:245: 0x77t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:246: 0x39t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:247: 0x7at
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:248: 0x24t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:249: 0x43t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:250: 0x26t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:251: 0x46t
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:252: .end array-data
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:253:.end method

---- END (Status=True) ----

TIME: 2025-10-31 00:36:51
CMD : Get-Content "D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali"
---- OUTPUT ----
.class public final Lcom/example/seven/R;
.super Ljava/lang/Object;

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/example/seven/R$color;,
Lcom/example/seven/R$drawable;,
Lcom/example/seven/R$id;,
Lcom/example/seven/R$layout;,
Lcom/example/seven/R$mipmap;,
Lcom/example/seven/R$string;,
Lcom/example/seven/R$style;,
Lcom/example/seven/R$xml;
}
.end annotation

# direct methods
.method private constructor ()V
.locals 0

invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:36:54
CMD : Get-Content "D:\work\challenge8_apktool\smali\com\example\seven\R$layout.smali"
---- OUTPUT ----
.class public final Lcom/example/seven/R;
.super Ljava/lang/Object;

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/example/seven/R$color;,
Lcom/example/seven/R$drawable;,
Lcom/example/seven/R$id;,
Lcom/example/seven/R$layout;,
Lcom/example/seven/R$mipmap;,
Lcom/example/seven/R$string;,
Lcom/example/seven/R$style;,
Lcom/example/seven/R$xml;
}
.end annotation

# direct methods
.method private constructor ()V
.locals 0

invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:36:56
CMD : Get-Content "D:\work\challenge8_apktool\res\layout\activity_main.xml"
---- OUTPUT ----

---- END (Status=True) ----

TIME: 2025-10-31 00:37:00
CMD : Select-String -Path "D:\work\challenge8_apktool\smali\com\example\seven\*.smali" -Pattern "getdata"
---- OUTPUT ----

D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:20: invoke-direct {p0, p1}, Lcom/example/seven/MainActivity;->getdata(Ljava/lang/String;)V
D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:71:.method private getdata(Ljava/lang/String;)V

---- END (Status=True) ----

TIME: 2025-10-31 00:37:03
CMD : (Get-Content "D:\work\env_notes_ch8.md") + @"
- 2025-10-31 00:35:MainActivity 使用 AES/CBC/PKCS5Padding,key/IV 在 :array_0/:array_1。
"@ | Set-Content "D:\work\env_notes_ch8.md" -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:38:21
CMD : Select-String -Path "D:\work\challenge8_apktool\smali*\com\example\seven\R$string*.smali" `
-Pattern "0x7f0f001b" -Context 0,2
---- OUTPUT ----

> D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:17:.field public static final alg:I = 0x7f0f001b
D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:18:
D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:19:.field public static final app_name:I = 0x7f0f001d

---- END (Status=True) ----

TIME: 2025-10-31 00:38:22
CMD : Select-String -Path "D:\work\challenge8_apktool\smali*\com\example\seven\R$string*.smali" `
-Pattern "0x7f0f007b" -Context 0,2
---- OUTPUT ----

> D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:23:.field public static final salg:I = 0x7f0f007b
D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:24:
D:\work\challenge8_apktool\smali\com\example\seven\R$string.smali:25:

---- END (Status=True) ----

TIME: 2025-10-31 00:38:25
CMD : Get-Content "D:\work\challenge8_apktool\smali\com\example\seven\MainActivity$1.smali"
---- OUTPUT ----
.class public Lcom/example/seven/MainActivity;
.super Landroidx/appcompat/app/AppCompatActivity;
.source "MainActivity.java"

# direct methods
.method public constructor ()V
.locals 0

.line 37
invoke-direct {p0}, Landroidx/appcompat/app/AppCompatActivity;->()V

return-void
.end method

.method static synthetic access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V
.locals 0

.line 37
invoke-direct {p0, p1}, Lcom/example/seven/MainActivity;->getdata(Ljava/lang/String;)V

return-void
.end method

.method public static decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/crypto/NoSuchPaddingException;,
Ljava/security/NoSuchAlgorithmException;,
Ljava/security/InvalidAlgorithmParameterException;,
Ljava/security/InvalidKeyException;,
Ljavax/crypto/BadPaddingException;,
Ljavax/crypto/IllegalBlockSizeException;
}
.end annotation

.line 94
invoke-static {p0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;

move-result-object p0

const/4 v0, 0x2

.line 95
invoke-virtual {p0, v0, p2, p3}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V

.line 96
invoke-static {}, Ljava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder;

move-result-object p2

.line 97
invoke-virtual {p2, p1}, Ljava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B

move-result-object p1

.line 96
invoke-virtual {p0, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B

move-result-object p0

.line 98
new-instance p1, Ljava/lang/String;

invoke-direct {p1, p0}, Ljava/lang/String;->([B)V

return-object p1
.end method

.method private getdata(Ljava/lang/String;)V
.locals 1

.line 73
new-instance p0, Ljava/lang/StringBuilder;

invoke-direct {p0}, Ljava/lang/StringBuilder;->()V

.line 75
:try_start_0
new-instance v0, Ljava/net/URL;

invoke-direct {v0, p1}, Ljava/net/URL;->(Ljava/lang/String;)V

.line 76
new-instance p1, Ljava/util/Scanner;

invoke-virtual {v0}, Ljava/net/URL;->openStream()Ljava/io/InputStream;

move-result-object v0

invoke-direct {p1, v0}, Ljava/util/Scanner;->(Ljava/io/InputStream;)V

.line 78
:goto_0
invoke-virtual {p1}, Ljava/util/Scanner;->hasNext()Z

move-result v0

if-eqz v0, :cond_0

.line 79
invoke-virtual {p1}, Ljava/util/Scanner;->nextLine()Ljava/lang/String;

move-result-object v0

.line 80
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

goto :goto_0

.line 82
:cond_0
invoke-virtual {p1}, Ljava/util/Scanner;->close()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

goto :goto_1

:catch_0
move-exception p0

.line 84
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V

:goto_1
return-void
.end method

# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 5

.line 41
invoke-super {p0, p1}, Landroidx/appcompat/app/AppCompatActivity;->onCreate(Landroid/os/Bundle;)V

.line 43
new-instance p1, Landroid/os/StrictMode$ThreadPolicy$Builder;

invoke-direct {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->()V

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;

move-result-object p1

invoke-virtual {p1}, Landroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy;

move-result-object p1

.line 44
invoke-static {p1}, Landroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V

const p1, 0x7f0f001b

.line 46
invoke-virtual {p0, p1}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object p1

const/16 v0, 0x10

new-array v1, v0, [B

.line 48
fill-array-data v1, :array_0

.line 49
new-instance v2, Ljavax/crypto/spec/SecretKeySpec;

const v3, 0x7f0f007b

invoke-virtual {p0, v3}, Lcom/example/seven/MainActivity;->getString(I)Ljava/lang/String;

move-result-object v3

const/4 v4, 0x0

invoke-direct {v2, v1, v4, v0, v3}, Ljavax/crypto/spec/SecretKeySpec;->([BIILjava/lang/String;)V

new-array v0, v0, [B

.line 51
fill-array-data v0, :array_1

.line 52
new-instance v1, Ljavax/crypto/spec/IvParameterSpec;

invoke-direct {v1, v0}, Ljavax/crypto/spec/IvParameterSpec;->([B)V

const v0, 0x7f0b001c

.line 54
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->setContentView(I)V

const v0, 0x7f0800f8

.line 55
invoke-virtual {p0, v0}, Lcom/example/seven/MainActivity;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Lcom/google/android/material/button/MaterialButton;

.line 56
new-instance v3, Lcom/example/seven/MainActivity$1;

invoke-direct {v3, p0, p1, v2, v1}, Lcom/example/seven/MainActivity$1;->(Lcom/example/seven/MainActivity;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)V

invoke-virtual {v0, v3}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V

return-void

:array_0
.array-data 1
0x70t
0x32t
0x73t
0x35t
0x76t
0x38t
0x79t
0x2ft
0x42t
0x3ft
0x45t
0x28t
0x48t
0x2bt
0x4dt
0x62t
.end array-data

:array_1
.array-data 1
0x53t
0x68t
0x56t
0x6dt
0x59t
0x71t
0x33t
0x74t
0x36t
0x77t
0x39t
0x7at
0x24t
0x43t
0x26t
0x46t
.end array-data
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:38:28
CMD : Select-String -Path "D:\work\challenge8_apktool\smali*\com\example\seven\R$id*.smali" `
-Pattern "login_button"
---- OUTPUT ----

D:\work\challenge8_apktool\smali\com\example\seven\R$id.smali:17:.field public static final login_button:I = 0x7f0800f8

---- END (Status=True) ----

TIME: 2025-10-31 00:38:28
CMD : Select-String -Path "D:\work\challenge8_apktool\smali\com\example\seven\*.smali" `
-Pattern "0x7f0800f8"
---- OUTPUT ----

D:\work\challenge8_apktool\smali\com\example\seven\MainActivity.smali:196: const v0, 0x7f0800f8
D:\work\challenge8_apktool\smali\com\example\seven\R$id.smali:17:.field public static final login_button:I = 0x7f0800f8

---- END (Status=True) ----

TIME: 2025-10-31 00:40:40
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\MainActivity$1.smali'
---- OUTPUT ----
.class Lcom/example/seven/MainActivity$1;
.super Ljava/lang/Object;
.source "MainActivity.java"

# interfaces
.implements Landroid/view/View$OnClickListener;

# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/example/seven/MainActivity;->onCreate(Landroid/os/Bundle;)V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation

# instance fields
.field final synthetic this$0:Lcom/example/seven/MainActivity;

.field final synthetic val$algorithm:Ljava/lang/String;

.field final synthetic val$k:Ljavax/crypto/SecretKey;

.field final synthetic val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

# direct methods
.method constructor (Lcom/example/seven/MainActivity;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)V
.locals 0

.line 56
iput-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iput-object p2, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

iput-object p3, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iput-object p4, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

# virtual methods
.method public onClick(Landroid/view/View;)V
.locals 4

.line 60
:try_start_0
iget-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iget-object v0, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

invoke-static {}, Lcom/example/seven/ApiHelper;->baseUrlFromJNI()Ljava/lang/String;

move-result-object v1

iget-object v2, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iget-object v3, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-static {v0, v1, v2, v3}, Lcom/example/seven/MainActivity;->decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;

move-result-object v0

invoke-static {p1, v0}, Lcom/example/seven/MainActivity;->access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V

.line 61
iget-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iget-object v0, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

invoke-static {}, Lcom/example/seven/ApiHelper1;->baseUrlFromJNI1()Ljava/lang/String;

move-result-object v1

iget-object v2, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iget-object v3, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-static {v0, v1, v2, v3}, Lcom/example/seven/MainActivity;->decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;

move-result-object v0

invoke-static {p1, v0}, Lcom/example/seven/MainActivity;->access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V

.line 62
iget-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iget-object v0, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

invoke-static {}, Lcom/example/seven/ApiHelper2;->baseUrlFromJNI2()Ljava/lang/String;

move-result-object v1

iget-object v2, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iget-object v3, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-static {v0, v1, v2, v3}, Lcom/example/seven/MainActivity;->decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;

move-result-object v0

invoke-static {p1, v0}, Lcom/example/seven/MainActivity;->access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V

.line 63
iget-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iget-object v0, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

invoke-static {}, Lcom/example/seven/ApiHelper3;->baseUrlFromJNI3()Ljava/lang/String;

move-result-object v1

iget-object v2, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iget-object v3, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-static {v0, v1, v2, v3}, Lcom/example/seven/MainActivity;->decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;

move-result-object v0

invoke-static {p1, v0}, Lcom/example/seven/MainActivity;->access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V

.line 64
iget-object p1, p0, Lcom/example/seven/MainActivity$1;->this$0:Lcom/example/seven/MainActivity;

iget-object v0, p0, Lcom/example/seven/MainActivity$1;->val$algorithm:Ljava/lang/String;

invoke-static {}, Lcom/example/seven/ApiHelper4;->baseUrlFromJNI4()Ljava/lang/String;

move-result-object v1

iget-object v2, p0, Lcom/example/seven/MainActivity$1;->val$k:Ljavax/crypto/SecretKey;

iget-object p0, p0, Lcom/example/seven/MainActivity$1;->val$vi_para:Ljavax/crypto/spec/IvParameterSpec;

invoke-static {v0, v1, v2, p0}, Lcom/example/seven/MainActivity;->decrypt(Ljava/lang/String;Ljava/lang/String;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;)Ljava/lang/String;

move-result-object p0

invoke-static {p1, p0}, Lcom/example/seven/MainActivity;->access$000(Lcom/example/seven/MainActivity;Ljava/lang/String;)V
:try_end_0
.catch Ljavax/crypto/NoSuchPaddingException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljavax/crypto/IllegalBlockSizeException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljavax/crypto/BadPaddingException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/security/InvalidKeyException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/security/InvalidAlgorithmParameterException; {:try_start_0 .. :try_end_0} :catch_0
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0

goto :goto_0

:catch_0
move-exception p0

.line 66
invoke-virtual {p0}, Ljava/security/GeneralSecurityException;->printStackTrace()V

:goto_0
return-void
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:40:43
CMD : Get-Content 'D:\work\challenge8_apktool\smali_classes2\com\example\seven\MainActivity$1.smali'
---- OUTPUT ----
Get-Content:
Line |
2 | Get-Content 'D:\work\challenge8_apktool\smali_classes2\com\exampl …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\work\challenge8_apktool\smali_classes2\com\example\seven\MainActivity$1.smali' because it does not exist.
---- END (Status=True) ----

TIME: 2025-10-31 00:40:49
CMD : $key = [System.Text.Encoding]::ASCII.GetString([byte[]](0x70,0x32,0x73,0x35,0x76,0x38,0x79,0x2f,0x42,0x3f,0x45,0x28,0x48,0x2b,0x4d,0x62))
$iv = [System.Text.Encoding]::ASCII.GetString([byte[]](0x53,0x68,0x56,0x6d,0x59,0x71,0x33,0x74,0x36,0x77,0x39,0x7a,0x24,0x43,0x26,0x46))
"key=$key"
"iv =$iv"
---- OUTPUT ----
key=p2s5v8y/B?E(H+Mb
iv =ShVmYq3t6w9z$C&F
---- END (Status=True) ----

TIME: 2025-10-31 00:40:54
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
logcat --pid 11882 -d
---- OUTPUT ----
--------- beginning of main
10-30 13:32:13.452 11882 11882 I Zygote : Process 11882 created for com.example.seven
10-30 13:32:13.453 11882 11882 I m.example.seven: Using CollectorTypeCMC GC.
10-30 13:32:13.455 11882 11882 W m.example.seven: Unexpected CPU variant for x86: x86_64.
10-30 13:32:13.455 11882 11882 W m.example.seven: Known variants: atom, sandybridge, silvermont, goldmont, goldmont-plus, goldmont-without-sha-xsaves, tremont, kabylake, alderlake, default
10-30 13:32:13.467 11882 11882 D nativeloader: Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok
10-30 13:32:13.539 11882 11882 D nativeloader: Configuring clns-9 for other apk /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk. target_sdk_version=32, uses_libraries=, library_path=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/lib/x86_64:/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.example.seven
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: Currently set values for:
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_pkgs=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_values=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in per-application setting
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: ANGLE allowlist from config: com.dreamgames.royalmatch com.dts.freefiremax com.dxx.firenow com.gramgames.mergedragons com.ludo.king com.mojang.minecraftpe com.my.defense com.nintendo.zaka com.os.airforce com.playrix.fishdomdd.gplay io.teslatech.callbreak jp.konami.prospia net.peakgames.toonblast
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in ANGLE allowlist or settings, returning default
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
--------- beginning of system
10-30 13:32:13.595 11882 11897 I DisplayManager: Choreographer implicitly registered for the refresh rate.
10-30 13:32:13.615 11882 11882 D DesktopExperienceFlags: Toggle override initialized to: false
10-30 13:32:13.626 11882 11882 E ashmem : Pinning is deprecated since Android Q. Please use trim or other methods.
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv1_CM_emulation.so
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv2_emulation.so
10-30 13:32:13.684 11882 11882 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET
10-30 13:32:13.687 11882 11897 W HWUI : Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
10-30 13:32:13.688 11882 11897 W HWUI : Failed to initialize 101010-2 format, error = EGL_SUCCESS
10-30 13:32:13.810 11882 11882 W HWUI : Unknown dataspace 0
10-30 13:32:13.844 11882 11882 D VRI[MainActivity]: WindowInsets changed: 1080x2400 statusBars:[0,63,0,0] navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:13.844 11882 11882 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.view.ViewRootImpl$$ExternalSyntheticLambda12@803522
10-30 13:32:13.845 11882 11882 I HWUI : Using FreeType backend (prop=Auto)
10-30 13:32:14.481 11882 11882 D InsetsController: hide(ime())
10-30 13:32:14.481 11882 11882 I ImeTracker: com.example.seven:2f5f7082: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:14.604 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:null mandatorySystemGestures:[0,0,0,84]
10-30 13:32:14.702 11882 11882 D VRI[MainActivity]: visibilityChanged oldVisibility=true newVisibility=false
10-30 13:32:15.886 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:null mandatorySystemGestures:null
10-30 13:32:16.066 11882 11882 D InsetsController: hide(ime())
10-30 13:32:16.066 11882 11882 I ImeTracker: com.example.seven:877f9d21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:16.838 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:[0,63,0,0] mandatorySystemGestures:[0,63,0,0]
10-30 13:32:18.805 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:35.338 11882 11887 W m.example.seven: userfaultfd: MOVE ioctl seems unsupported: Connection timed out
10-30 13:32:35.344 11882 11889 W System : A resource failed to call release.
---- END (Status=True) ----

TIME: 2025-10-31 00:41:02
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
logcat --pid 11882 -d
---- OUTPUT ----
--------- beginning of main
10-30 13:32:13.452 11882 11882 I Zygote : Process 11882 created for com.example.seven
10-30 13:32:13.453 11882 11882 I m.example.seven: Using CollectorTypeCMC GC.
10-30 13:32:13.455 11882 11882 W m.example.seven: Unexpected CPU variant for x86: x86_64.
10-30 13:32:13.455 11882 11882 W m.example.seven: Known variants: atom, sandybridge, silvermont, goldmont, goldmont-plus, goldmont-without-sha-xsaves, tremont, kabylake, alderlake, default
10-30 13:32:13.467 11882 11882 D nativeloader: Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok
10-30 13:32:13.539 11882 11882 D nativeloader: Configuring clns-9 for other apk /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk. target_sdk_version=32, uses_libraries=, library_path=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/lib/x86_64:/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.example.seven
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: Currently set values for:
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_pkgs=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_values=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in per-application setting
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: ANGLE allowlist from config: com.dreamgames.royalmatch com.dts.freefiremax com.dxx.firenow com.gramgames.mergedragons com.ludo.king com.mojang.minecraftpe com.my.defense com.nintendo.zaka com.os.airforce com.playrix.fishdomdd.gplay io.teslatech.callbreak jp.konami.prospia net.peakgames.toonblast
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in ANGLE allowlist or settings, returning default
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
--------- beginning of system
10-30 13:32:13.595 11882 11897 I DisplayManager: Choreographer implicitly registered for the refresh rate.
10-30 13:32:13.615 11882 11882 D DesktopExperienceFlags: Toggle override initialized to: false
10-30 13:32:13.626 11882 11882 E ashmem : Pinning is deprecated since Android Q. Please use trim or other methods.
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv1_CM_emulation.so
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv2_emulation.so
10-30 13:32:13.684 11882 11882 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET
10-30 13:32:13.687 11882 11897 W HWUI : Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
10-30 13:32:13.688 11882 11897 W HWUI : Failed to initialize 101010-2 format, error = EGL_SUCCESS
10-30 13:32:13.810 11882 11882 W HWUI : Unknown dataspace 0
10-30 13:32:13.844 11882 11882 D VRI[MainActivity]: WindowInsets changed: 1080x2400 statusBars:[0,63,0,0] navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:13.844 11882 11882 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.view.ViewRootImpl$$ExternalSyntheticLambda12@803522
10-30 13:32:13.845 11882 11882 I HWUI : Using FreeType backend (prop=Auto)
10-30 13:32:14.481 11882 11882 D InsetsController: hide(ime())
10-30 13:32:14.481 11882 11882 I ImeTracker: com.example.seven:2f5f7082: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:14.604 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:null mandatorySystemGestures:[0,0,0,84]
10-30 13:32:14.702 11882 11882 D VRI[MainActivity]: visibilityChanged oldVisibility=true newVisibility=false
10-30 13:32:15.886 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:null mandatorySystemGestures:null
10-30 13:32:16.066 11882 11882 D InsetsController: hide(ime())
10-30 13:32:16.066 11882 11882 I ImeTracker: com.example.seven:877f9d21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:16.838 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:[0,63,0,0] mandatorySystemGestures:[0,63,0,0]
10-30 13:32:18.805 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:35.338 11882 11887 W m.example.seven: userfaultfd: MOVE ioctl seems unsupported: Connection timed out
10-30 13:32:35.344 11882 11889 W System : A resource failed to call release.
10-30 13:40:58.433 11882 11882 D nativeloader: Load /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64/libnative-lib.so using class loader ns clns-9 (caller=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk): ok
---- END (Status=True) ----

TIME: 2025-10-31 00:42:31
CMD : (Get-Content 'D:\work\env_notes_ch8.md') + @"
- 2025-10-31 00:41:AES key = p2s5v8y/B?E(H+Mb,IV = ShVmYq3t6w9z$C&F。
"@ | Set-Content 'D:\work\env_notes_ch8.md' -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:42:34
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\ApiHelper.smali'
---- OUTPUT ----
.class public Lcom/example/seven/ApiHelper;
.super Ljava/lang/Object;
.source "ApiHelper.java"

# static fields
.field private static INSTANCE:Lretrofit2/Retrofit;

# direct methods
.method static constructor ()V
.locals 1

const-string v0, "native-lib"

.line 11
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

return-void
.end method

.method public constructor ()V
.locals 0

.line 6
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static native baseUrlFromJNI()Ljava/lang/String;
.end method

.method public static getInstance()Lretrofit2/Retrofit;
.locals 2

.line 15
sget-object v0, Lcom/example/seven/ApiHelper;->INSTANCE:Lretrofit2/Retrofit;

if-nez v0, :cond_0

.line 16
new-instance v0, Lretrofit2/Retrofit$Builder;

invoke-direct {v0}, Lretrofit2/Retrofit$Builder;->()V

invoke-static {}, Lcom/example/seven/ApiHelper;->baseUrlFromJNI()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->baseUrl(Ljava/lang/String;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 17
invoke-static {}, Lretrofit2/converter/gson/GsonConverterFactory;->create()Lretrofit2/converter/gson/GsonConverterFactory;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->addConverterFactory(Lretrofit2/Converter$Factory;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 18
invoke-virtual {v0}, Lretrofit2/Retrofit$Builder;->build()Lretrofit2/Retrofit;

move-result-object v0

sput-object v0, Lcom/example/seven/ApiHelper;->INSTANCE:Lretrofit2/Retrofit;

.line 20
:cond_0
sget-object v0, Lcom/example/seven/ApiHelper;->INSTANCE:Lretrofit2/Retrofit;

return-object v0
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:42:34
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\ApiHelper1.smali'
---- OUTPUT ----
.class public Lcom/example/seven/ApiHelper1;
.super Ljava/lang/Object;
.source "ApiHelper1.java"

# static fields
.field private static INSTANCE:Lretrofit2/Retrofit;

# direct methods
.method static constructor ()V
.locals 1

const-string v0, "native-lib"

.line 11
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

return-void
.end method

.method public constructor ()V
.locals 0

.line 6
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static native baseUrlFromJNI1()Ljava/lang/String;
.end method

.method public static getInstance()Lretrofit2/Retrofit;
.locals 2

.line 15
sget-object v0, Lcom/example/seven/ApiHelper1;->INSTANCE:Lretrofit2/Retrofit;

if-nez v0, :cond_0

.line 16
new-instance v0, Lretrofit2/Retrofit$Builder;

invoke-direct {v0}, Lretrofit2/Retrofit$Builder;->()V

invoke-static {}, Lcom/example/seven/ApiHelper1;->baseUrlFromJNI1()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->baseUrl(Ljava/lang/String;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 17
invoke-static {}, Lretrofit2/converter/gson/GsonConverterFactory;->create()Lretrofit2/converter/gson/GsonConverterFactory;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->addConverterFactory(Lretrofit2/Converter$Factory;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 18
invoke-virtual {v0}, Lretrofit2/Retrofit$Builder;->build()Lretrofit2/Retrofit;

move-result-object v0

sput-object v0, Lcom/example/seven/ApiHelper1;->INSTANCE:Lretrofit2/Retrofit;

.line 20
:cond_0
sget-object v0, Lcom/example/seven/ApiHelper1;->INSTANCE:Lretrofit2/Retrofit;

return-object v0
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:42:34
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\ApiHelper2.smali'
---- OUTPUT ----
.class public Lcom/example/seven/ApiHelper2;
.super Ljava/lang/Object;
.source "ApiHelper2.java"

# static fields
.field private static INSTANCE:Lretrofit2/Retrofit;

# direct methods
.method static constructor ()V
.locals 1

const-string v0, "native-lib"

.line 11
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

return-void
.end method

.method public constructor ()V
.locals 0

.line 6
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static native baseUrlFromJNI2()Ljava/lang/String;
.end method

.method public static getInstance()Lretrofit2/Retrofit;
.locals 2

.line 15
sget-object v0, Lcom/example/seven/ApiHelper2;->INSTANCE:Lretrofit2/Retrofit;

if-nez v0, :cond_0

.line 16
new-instance v0, Lretrofit2/Retrofit$Builder;

invoke-direct {v0}, Lretrofit2/Retrofit$Builder;->()V

invoke-static {}, Lcom/example/seven/ApiHelper2;->baseUrlFromJNI2()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->baseUrl(Ljava/lang/String;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 17
invoke-static {}, Lretrofit2/converter/gson/GsonConverterFactory;->create()Lretrofit2/converter/gson/GsonConverterFactory;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->addConverterFactory(Lretrofit2/Converter$Factory;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 18
invoke-virtual {v0}, Lretrofit2/Retrofit$Builder;->build()Lretrofit2/Retrofit;

move-result-object v0

sput-object v0, Lcom/example/seven/ApiHelper2;->INSTANCE:Lretrofit2/Retrofit;

.line 20
:cond_0
sget-object v0, Lcom/example/seven/ApiHelper2;->INSTANCE:Lretrofit2/Retrofit;

return-object v0
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:42:34
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\ApiHelper3.smali'
---- OUTPUT ----
.class public Lcom/example/seven/ApiHelper3;
.super Ljava/lang/Object;
.source "ApiHelper3.java"

# static fields
.field private static INSTANCE:Lretrofit2/Retrofit;

# direct methods
.method static constructor ()V
.locals 1

const-string v0, "native-lib"

.line 11
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

return-void
.end method

.method public constructor ()V
.locals 0

.line 6
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static native baseUrlFromJNI3()Ljava/lang/String;
.end method

.method public static getInstance()Lretrofit2/Retrofit;
.locals 2

.line 15
sget-object v0, Lcom/example/seven/ApiHelper3;->INSTANCE:Lretrofit2/Retrofit;

if-nez v0, :cond_0

.line 16
new-instance v0, Lretrofit2/Retrofit$Builder;

invoke-direct {v0}, Lretrofit2/Retrofit$Builder;->()V

invoke-static {}, Lcom/example/seven/ApiHelper3;->baseUrlFromJNI3()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->baseUrl(Ljava/lang/String;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 17
invoke-static {}, Lretrofit2/converter/gson/GsonConverterFactory;->create()Lretrofit2/converter/gson/GsonConverterFactory;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->addConverterFactory(Lretrofit2/Converter$Factory;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 18
invoke-virtual {v0}, Lretrofit2/Retrofit$Builder;->build()Lretrofit2/Retrofit;

move-result-object v0

sput-object v0, Lcom/example/seven/ApiHelper3;->INSTANCE:Lretrofit2/Retrofit;

.line 20
:cond_0
sget-object v0, Lcom/example/seven/ApiHelper3;->INSTANCE:Lretrofit2/Retrofit;

return-object v0
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:42:34
CMD : Get-Content 'D:\work\challenge8_apktool\smali\com\example\seven\ApiHelper4.smali'
---- OUTPUT ----
.class public Lcom/example/seven/ApiHelper4;
.super Ljava/lang/Object;
.source "ApiHelper4.java"

# static fields
.field private static INSTANCE:Lretrofit2/Retrofit;

# direct methods
.method static constructor ()V
.locals 1

const-string v0, "native-lib"

.line 11
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

return-void
.end method

.method public constructor ()V
.locals 0

.line 6
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static native baseUrlFromJNI4()Ljava/lang/String;
.end method

.method public static getInstance()Lretrofit2/Retrofit;
.locals 2

.line 15
sget-object v0, Lcom/example/seven/ApiHelper4;->INSTANCE:Lretrofit2/Retrofit;

if-nez v0, :cond_0

.line 16
new-instance v0, Lretrofit2/Retrofit$Builder;

invoke-direct {v0}, Lretrofit2/Retrofit$Builder;->()V

invoke-static {}, Lcom/example/seven/ApiHelper4;->baseUrlFromJNI4()Ljava/lang/String;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->baseUrl(Ljava/lang/String;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 17
invoke-static {}, Lretrofit2/converter/gson/GsonConverterFactory;->create()Lretrofit2/converter/gson/GsonConverterFactory;

move-result-object v1

invoke-virtual {v0, v1}, Lretrofit2/Retrofit$Builder;->addConverterFactory(Lretrofit2/Converter$Factory;)Lretrofit2/Retrofit$Builder;

move-result-object v0

.line 18
invoke-virtual {v0}, Lretrofit2/Retrofit$Builder;->build()Lretrofit2/Retrofit;

move-result-object v0

sput-object v0, Lcom/example/seven/ApiHelper4;->INSTANCE:Lretrofit2/Retrofit;

.line 20
:cond_0
sget-object v0, Lcom/example/seven/ApiHelper4;->INSTANCE:Lretrofit2/Retrofit;

return-object v0
.end method
---- END (Status=True) ----

TIME: 2025-10-31 00:42:38
CMD : New-Item -ItemType Directory -Force -Path 'D:\work\challenge8_native' | Out-Null
Copy-Item 'D:\work\challenge8_apktool\lib\x86_64\libnative-lib.so' `
'D:\work\challenge8_native\libnative-lib.so' -Force
Get-ChildItem 'D:\work\challenge8_native'
---- OUTPUT ----

Directory: D:\work\challenge8_native

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2025/10/31 0:28 227592 libnative-lib.so

---- END (Status=True) ----

TIME: 2025-10-31 00:42:40
CMD : & 'C:\Tools\Sysinternals\strings.exe' `
-n 8 -a 'D:\work\challenge8_native\libnative-lib.so' `
> 'D:\work\challenge8_native\strings_native_lib.txt'
Get-Content 'D:\work\challenge8_native\strings_native_lib.txt' -TotalCount 40
---- OUTPUT ----
&:
Line |
2 | & 'C:\Tools\Sysinternals\strings.exe' `
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'C:\Tools\Sysinternals\strings.exe' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Get-Content:
Line |
5 | Get-Content 'D:\work\challenge8_native\strings_native_lib.txt' -T …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\work\challenge8_native\strings_native_lib.txt' because it does not exist.
---- END (Status=True) ----

TIME: 2025-10-31 00:42:48
CMD : Get-Content 'D:\work\challenge8_native\strings_native_lib.txt' -TotalCount 40
---- OUTPUT ----
[A\A]A^A_
[enable_if:
complex
imaginary
restrict
vector[
volatile
__bss_start
__cxa_allocate_dependent_exception
__cxa_allocate_exception
__cxa_atexit
__cxa_begin_catch
__cxa_call_unexpected
__cxa_current_exception_type
__cxa_current_primary_exception
__cxa_decrement_exception_refcount
__cxa_deleted_virtual
__cxa_demangle
__cxa_end_catch
__cxa_finalize
__cxa_free_dependent_exception
__cxa_free_exception
__cxa_get_exception_ptr
__cxa_get_globals
__cxa_get_globals_fast
__cxa_increment_exception_refcount
__cxa_new_handler
__cxa_pure_virtual
__cxa_rethrow
__cxa_rethrow_primary_exception
__cxa_terminate_handler
__cxa_throw
__cxa_uncaught_exception
__cxa_uncaught_exceptions
__cxa_unexpected_handler
__dynamic_cast
__float128
__gxx_personality_v0
__int128
__memmove_chk
---- END (Status=True) ----

TIME: 2025-10-31 00:42:57
CMD : & "$env:ANDROID_SDK_ROOT\platform-tools\adb.exe" -s emulator-5554 `
logcat --pid 11882 -d
---- OUTPUT ----
--------- beginning of main
10-30 13:32:13.452 11882 11882 I Zygote : Process 11882 created for com.example.seven
10-30 13:32:13.453 11882 11882 I m.example.seven: Using CollectorTypeCMC GC.
10-30 13:32:13.455 11882 11882 W m.example.seven: Unexpected CPU variant for x86: x86_64.
10-30 13:32:13.455 11882 11882 W m.example.seven: Known variants: atom, sandybridge, silvermont, goldmont, goldmont-plus, goldmont-without-sha-xsaves, tremont, kabylake, alderlake, default
10-30 13:32:13.467 11882 11882 D nativeloader: Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok
10-30 13:32:13.539 11882 11882 D nativeloader: Configuring clns-9 for other apk /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk. target_sdk_version=32, uses_libraries=, library_path=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/lib/x86_64:/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.example.seven
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: Currently set values for:
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_pkgs=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: angle_gl_driver_selection_values=[]
10-30 13:32:13.562 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in per-application setting
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: ANGLE allowlist from config: com.dreamgames.royalmatch com.dts.freefiremax com.dxx.firenow com.gramgames.mergedragons com.ludo.king com.mojang.minecraftpe com.my.defense com.nintendo.zaka com.os.airforce com.playrix.fishdomdd.gplay io.teslatech.callbreak jp.konami.prospia net.peakgames.toonblast
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: com.example.seven is not listed in ANGLE allowlist or settings, returning default
10-30 13:32:13.563 11882 11882 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
--------- beginning of system
10-30 13:32:13.595 11882 11897 I DisplayManager: Choreographer implicitly registered for the refresh rate.
10-30 13:32:13.615 11882 11882 D DesktopExperienceFlags: Toggle override initialized to: false
10-30 13:32:13.626 11882 11882 E ashmem : Pinning is deprecated since Android Q. Please use trim or other methods.
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv1_CM_emulation.so
10-30 13:32:13.659 11882 11897 I GFXSTREAM: [eglDisplay.cpp(297)] Opening libGLESv2_emulation.so
10-30 13:32:13.684 11882 11882 D DesktopModeFlags: Toggle override initialized to: OVERRIDE_UNSET
10-30 13:32:13.687 11882 11897 W HWUI : Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
10-30 13:32:13.688 11882 11897 W HWUI : Failed to initialize 101010-2 format, error = EGL_SUCCESS
10-30 13:32:13.810 11882 11882 W HWUI : Unknown dataspace 0
10-30 13:32:13.844 11882 11882 D VRI[MainActivity]: WindowInsets changed: 1080x2400 statusBars:[0,63,0,0] navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:13.844 11882 11882 D WindowOnBackDispatcher: setTopOnBackInvokedCallback (unwrapped): android.view.ViewRootImpl$$ExternalSyntheticLambda12@803522
10-30 13:32:13.845 11882 11882 I HWUI : Using FreeType backend (prop=Auto)
10-30 13:32:14.481 11882 11882 D InsetsController: hide(ime())
10-30 13:32:14.481 11882 11882 I ImeTracker: com.example.seven:2f5f7082: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:14.604 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:null mandatorySystemGestures:[0,0,0,84]
10-30 13:32:14.702 11882 11882 D VRI[MainActivity]: visibilityChanged oldVisibility=true newVisibility=false
10-30 13:32:15.886 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:null mandatorySystemGestures:null
10-30 13:32:16.066 11882 11882 D InsetsController: hide(ime())
10-30 13:32:16.066 11882 11882 I ImeTracker: com.example.seven:877f9d21: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
10-30 13:32:16.838 11882 11882 D VRI[MainActivity]: WindowInsets changed: statusBars:[0,63,0,0] mandatorySystemGestures:[0,63,0,0]
10-30 13:32:18.805 11882 11882 D VRI[MainActivity]: WindowInsets changed: navigationBars:[0,0,0,63] mandatorySystemGestures:[0,63,0,84]
10-30 13:32:35.338 11882 11887 W m.example.seven: userfaultfd: MOVE ioctl seems unsupported: Connection timed out
10-30 13:32:35.344 11882 11889 W System : A resource failed to call release.
10-30 13:40:58.433 11882 11882 D nativeloader: Load /data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk!/lib/x86_64/libnative-lib.so using class loader ns clns-9 (caller=/data/app/~~0-_u-nacpyVXJUAejsJBGA==/com.example.seven-ga9ReNrVpzW8Lf46KK4QPQ==/base.apk): ok
---- END (Status=True) ----

TIME: 2025-10-31 00:44:46
CMD : Select-String -Path 'D:\work\challenge8_native\strings_native_lib.txt' `
-Pattern '^[A-Za-z0-9+/=]{40,}$' |
ForEach-Object { $_.Line } |
Set-Content 'D:\work\challenge8_native\cipher_list.txt'
Get-Content 'D:\work\challenge8_native\cipher_list.txt'
---- OUTPUT ----
APE31ZTb0JPhUVUQxYIOxjMezyQ3nyxUuWdo4sPfxNUBvEjZtbIEC7b0C8LYwiZt
APE31ZTb0JPhUVUQxYIOxkMvsoKfUW+KT8vNpMt04E85Y2yS8+ub3SRHpZ4hO1c1
APE31ZTb0JPhUVUQxYIOxqUnmhmsZxAYmGGrSo7A1C3E/Nn04vMsgB7hfmwG3RGD
APE31ZTb0JPhUVUQxYIOxspnWdh1A84iCcyAaMxbTkWic/15AIha02B8yyFGQsRW
APE31ZTb0JPhUVUQxYIOxtbnaGS2xA53vOf3A0wWZiQnUhOhBeaaad8Ch7q9wz78
---- END (Status=True) ----

TIME: 2025-10-31 00:44:48
CMD : $key = [System.Text.Encoding]::ASCII.GetBytes('p2s5v8y/B?E(H+Mb')
$iv = [System.Text.Encoding]::ASCII.GetBytes('ShVmYq3t6w9z$C&F')
$cipherList = Get-Content 'D:\work\challenge8_native\cipher_list.txt'

$results = [System.Collections.Generic.List[string]]::new()
foreach ($cipherB64 in $cipherList) {
$cipherBytes = [Convert]::FromBase64String($cipherB64)
$aes = [System.Security.Cryptography.Aes]::Create()
$aes.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aes.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
$aes.Key = $key
$aes.IV = $iv
$decryptor = $aes.CreateDecryptor()
$plainBytes = $decryptor.TransformFinalBlock($cipherBytes, 0, $cipherBytes.Length)
$plainText = [System.Text.Encoding]::UTF8.GetString($plainBytes)
$results.Add($plainText)
}
$results | Tee-Object 'D:\work\challenge8_native\decrypted_urls.txt'
---- OUTPUT ----
https://pastebin.com/raw/jiXZKq3b
https://pastebin.com/raw/Xr0uxDLJ
https://pastebin.com/raw/JFR8pKQr
https://pastebin.com/raw/ZkJcM4v5
https://pastebin.com/raw/CxqJ49GT
---- END (Status=True) ----

TIME: 2025-10-31 00:44:52
CMD : (Get-Content 'D:\work\env_notes_ch8.md') + @"
- 2025-10-31 00:43:native 库中的 5 段密文已解密,结果见 decrypted_urls.txt。
"@ | Set-Content 'D:\work\env_notes_ch8.md' -Encoding UTF8
---- OUTPUT ----
---- END (Status=True) ----

TIME: 2025-10-31 00:45:21
CMD : $urls = Get-Content 'D:\work\challenge8_native\decrypted_urls.txt'
$outDir = 'D:\work\challenge8_native\pastebin_raw'
New-Item -ItemType Directory -Force -Path $outDir | Out-Null

$index = 1
foreach ($url in $urls) {
$file = Join-Path $outDir ("paste_{0:00}.txt" -f $index)
try {
Invoke-WebRequest -Uri $url -UseBasicParsing -OutFile $file
} catch {
"Failed to download $url`n$($_.Exception.Message)" | Tee-Object -FilePath "$file.error"
}
$index++
}

Get-ChildItem $outDir
---- OUTPUT ----

Directory: D:\work\challenge8_native\pastebin_raw

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2025/10/31 0:45 7 paste_01.txt
-a--- 2025/10/31 0:45 4 paste_02.txt
-a--- 2025/10/31 0:45 4 paste_03.txt
-a--- 2025/10/31 0:45 8 paste_04.txt
-a--- 2025/10/31 0:45 4 paste_05.txt

---- END (Status=True) ----

TIME: 2025-10-31 00:45:25
CMD : Get-Content 'D:\work\challenge8_native\pastebin_raw\paste_01.txt'
Get-Content 'D:\work\challenge8_native\pastebin_raw\paste_02.txt'
Get-Content 'D:\work\challenge8_native\pastebin_raw\paste_03.txt'
Get-Content 'D:\work\challenge8_native\pastebin_raw\paste_04.txt'
Get-Content 'D:\work\challenge8_native\pastebin_raw\paste_05.txt'
---- OUTPUT ----
_SXIUQ_
{HCB
5618
CVL_OXL}
LCTC
---- END (Status=True) ----

TIME: 2025-10-31 00:49:24
CMD : $seq = 'LCTC5618{HCB_SXIUQ_CVL_OXL}'
0..25 | ForEach-Object {
$shift = $_
$decoded = -join ($seq.ToCharArray() | ForEach-Object {
$ch = $_
if ($ch -match '[A-Z]') {
$base = [int][char]'A'
$code = [int][char]$ch
$new = (($code - $base - $shift + 26) % 26) + $base
[char]$new
} else {
$ch
}
})
"{0:00}: {1}" -f $shift, $decoded
}
---- OUTPUT ----
00: LCTC5618{HCB_SXIUQ_CVL_OXL}
01: KBSB5618{GBA_RWHTP_BUK_NWK}
02: JARA5618{FAZ_QVGSO_ATJ_MVJ}
03: IZQZ5618{EZY_PUFRN_ZSI_LUI}
04: HYPY5618{DYX_OTEQM_YRH_KTH}
05: GXOX5618{CXW_NSDPL_XQG_JSG}
06: FWNW5618{BWV_MRCOK_WPF_IRF}
07: EVMV5618{AVU_LQBNJ_VOE_HQE}
08: DULU5618{ZUT_KPAMI_UND_GPD}
09: CTKT5618{YTS_JOZLH_TMC_FOC}
10: BSJS5618{XSR_INYKG_SLB_ENB}
11: ARIR5618{WRQ_HMXJF_RKA_DMA}
12: ZQHQ5618{VQP_GLWIE_QJZ_CLZ}
13: YPGP5618{UPO_FKVHD_PIY_BKY}
14: XOFO5618{TON_EJUGC_OHX_AJX}
15: WNEN5618{SNM_DITFB_NGW_ZIW}
16: VMDM5618{RML_CHSEA_MFV_YHV}
17: ULCL5618{QLK_BGRDZ_LEU_XGU}
18: TKBK5618{PKJ_AFQCY_KDT_WFT}
19: SJAJ5618{OJI_ZEPBX_JCS_VES}
20: RIZI5618{NIH_YDOAW_IBR_UDR}
21: QHYH5618{MHG_XCNZV_HAQ_TCQ}
22: PGXG5618{LGF_WBMYU_GZP_SBP}
23: OFWF5618{KFE_VALXT_FYO_RAO}
24: NEVE5618{JED_UZKWS_EXN_QZN}
25: MDUD5618{IDC_TYJVR_DWM_PYM}
---- END (Status=True) ----

TIME: 2025-10-31 00:53:52
CMD : $cipher = 'LCTC5618{HCB_SXIUQ_CVL_OXL}'
$key = 'JOHN'
$keyCodes = $key.ToCharArray() | ForEach-Object { ([int][char]$_) - [int][char]'A' }
$keyLen = $keyCodes.Length
$index = 0

$plainChars = foreach ($ch in $cipher.ToCharArray()) {
if ($ch -match '[A-Z]') {
$shift = $keyCodes[$index % $keyLen]
$code = ([int][char]$ch) - [int][char]'A'
$dec = ($code - $shift + 26) % 26
$index++
[char]($dec + [int][char]'A')
} else {
$ch
}
}

$plain = -join $plainChars
$plain | Tee-Object 'D:\work\challenge8_native\flag_plain.txt'
---- OUTPUT ----
COMP5618{YOU_FOUND_THE_BOX}
---- END (Status=True) ----

~  ~  The   End  ~  ~


 赏 
感谢您的支持,我会继续努力哒!
支付宝收款码
tips
文章二维码 分类标签:归档TypechoAutoUpload
文章标题:c8-20251031_002439|c8all_merged
文章链接:https://www.fangshaonian.cn/archives/72/
最后编辑:2025 年 11 月 10 日 18:23 By 方少年
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
(*) 6 + 8 =
快来做第一个评论的人吧~