Android 手机软件反编译的smali源码,如何爆破?
.prologue
.line 234
const-wide/16 v0, 0x613
.line 235
.local v0, DW1:J
const-wide/16 v9, 0x0
.line 236
.local v9, tol:J
const/4 v11, 0x6
new-array v2, v11, [C
.line 238
.local v2, cnum:[C
const-string v4, ""
.line 240
.local v4, stmp:Ljava/lang/String;
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
invoke-virtual {v11}, Ljava/lang/String;->length()I
move-result v11
const/16 v12, 0xf
if-ne v11, v12, :cond_1d
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
invoke-virtual {v11}, Ljava/lang/String;->length()I
move-result v11
const/16 v12, 0xc
.line 266
:goto_1e
return v11
.line 241
:cond_1f
const-wide/16 v5, 0x2710
.local v5, t1:J
const/4 v3, 0x1
.line 243
.local v3, ii:I
:cond_22
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
const/4 v12, 0x1
sub-int v12, v3, v12
invoke-virtual {v11, v12}, Ljava/lang/String;->charAt(I)C
move-result v11
const/16 v12, 0x30
sub-int/2addr v11, v12
int-to-long v7, v11
.line 244
.local v7, t2:J
mul-long v11, v7, v5
add-long/2addr v9, v11
.line 245
add-int/lit8 v3, v3, 0x1
.line 246
const-wide/16 v11, 0xa
div-long/2addr v5, v11
.line 247
const-wide/16 v11, 0x0
cmp-long v11, v5, v11
if-gtz v11, :cond_22
.line 248
const-wide/16 v11, 0x613
invoke-virtual {p0, v11, v12}, LMy/XuanAo/BaZi/CSoftReg;->SnCal(J)J
move-result-wide v11
xor-long/2addr v9, v11
.line 249
const-wide/16 v11, 0x613
add-long/2addr v9, v11
const-wide/16 v11, 0x3
div-long/2addr v9, v11
.line 250
const-wide/16 v11, 0x613
sub-long/2addr v9, v11
.line 251
invoke-static {v9, v10}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v4
.line 252
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v11
int-to-long v5, v11
.line 253
const/4 v11, 0x0
long-to-int v12, v5
const/4 v13, 0x0
invoke-virtual {v4, v11, v12, v2, v13}, Ljava/lang/String;->getChars(II[CI)V
.line 254
const-wide/16 v11, 0x4
cmp-long v11, v5, v11
if-gez v11, :cond_75
.line 256
const-wide/16 v11, 0x4
sub-long v7, v11, v5
.line 257
const-wide/16 v11, 0x1
sub-long v11, v5, v11
long-to-int v3, v11
:goto_6f
if-gez v3, :cond_7b
.line 259
const/4 v3, 0x0
:goto_72
long-to-int v11, v7
if-lt v3, v11, :cond_85
.line 262
:cond_75
const/4 v3, 0x1
:goto_76
const/4 v11, 0x4
if-le v3, v11, :cond_8c
.line 266
const/4 v11, 0x1
goto :goto_1e
.line 258
:cond_7b
int-to-long v11, v3
add-long/2addr v11, v7
long-to-int v11, v11
aget-char v12, v2, v3
aput-char v12, v2, v11
.line 257
add-int/lit8 v3, v3, -0x1
goto :goto_6f
.line 260
:cond_85
const/16 v11, 0x30
aput-char v11, v2, v3
.line 259
add-int/lit8 v3, v3, 0x1
goto :goto_72
.line 264
:cond_8c
const/4 v11, 0x1
sub-int v11, v3, v11
aget-char v11, v2, v11
iget-object v12, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
const/4 v13, 0x1
sub-int v13, v3, v13
invoke-virtual {v12, v13}, Ljava/lang/String;->charAt(I)C
move-result v12
if-eq v11, v12, :cond_9e
const/4 v11, 0x0
goto :goto_1e
.line 262
:cond_9e
add-int/lit8 v3, v3, 0x1
goto :goto_76
.end method
.prologue
.line 271
const-wide/16 v0, 0x843
.line 272
.local v0, DW1:J
const-wide/16 v9, 0x0
.line 273
.local v9, tol:J
const/4 v11, 0x6
new-array v2, v11, [C
.line 275
.local v2, cnum:[C
const-string v4, ""
.line 277
.local v4, stmp:Ljava/lang/String;
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
invoke-virtual {v11}, Ljava/lang/String;->length()I
move-result v11
const/16 v12, 0xf
if-ne v11, v12, :cond_1d
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
invoke-virtual {v11}, Ljava/lang/String;->length()I
move-result v11
const/16 v12, 0xc
if-eq v11, v12, :cond_1f
:cond_1d
const/4 v11, 0x0
.line 304
:goto_1e
return v11
.line 278
:cond_1f
const-wide/16 v5, 0x2710
.local v5, t1:J
const/4 v3, 0x6
.line 280
.local v3, ii:I
:cond_22
iget-object v11, p0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
const/4 v12, 0x1
sub-int v12, v3, v12
invoke-virtual {v11, v12}, Ljava/lang/String;->charAt(I)C
move-result v11
const/16 v12, 0x30
sub-int/2addr v11, v12
int-to-long v7, v11
.line 281
.local v7, t2:J
mul-long v11, v7, v5
add-long/2addr v9, v11
.line 282
add-int/lit8 v3, v3, 0x1
.line 283
const-wide/16 v11, 0xa
div-long/2addr v5, v11
.line 284
const-wide/16 v11, 0x0
cmp-long v11, v5, v11
if-gtz v11, :cond_22
.line 285
const-wide/16 v11, 0x843
invoke-virtual {p0, v11, v12}, LMy/XuanAo/BaZi/CSoftReg;->SnCal(J)J
move-result-wide v11
xor-long/2addr v9, v11
.line 286
const-wide/16 v11, 0x843
xor-long/2addr v9, v11
.line 287
const-wide/16 v11, 0x2
div-long/2addr v9, v11
const-wide/16 v11, 0x843
add-long/2addr v9, v11
.line 288
const-wide/16 v11, 0x2
div-long/2addr v9, v11
const-wide/16 v11, 0x843
sub-long/2addr v9, v11
.line 289
invoke-static {v9, v10}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v4
.line 290
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v11
int-to-long v5, v11
.line 291
const/4 v11, 0x0
long-to-int v12, v5
const/4 v13, 0x0
invoke-virtual {v4, v11, v12, v2, v13}, Ljava/lang/String;->getChars(II[CI)V
.line 292
const-wide/16 v11, 0x4
cmp-long v11, v5, v11
if-gez v11, :cond_7b
.line 294
const-wide/16 v11, 0x4
sub-long v7, v11, v5
.line 295
const-wide/16 v11, 0x1
sub-long v11, v5, v11
long-to-int v3, v11
:goto_75
if-gez v3, :cond_82
.line 297
const/4 v3, 0x0
:goto_78
long-to-int v11, v7
if-lt v3, v11, :cond_8c
.line 300
:cond_7b
const/4 v3, 0x5
:goto_7c
const/16 v11, 0x8
if-le v3, v11, :cond_93
.line 304
const/4 v11, 0x1
goto :goto_1e
.line 296
:cond_82
int-to-long v11, v3
add-long/2addr v11, v7
long-to-int v11, v11
aget-char v12, v2, v3
aput-char v12, v2, v11
.line 295
add-int/lit8 v3, v3, -0x1
goto :goto_75
.line 298
:cond_8c
const/16 v11, 0x30
aput-char v11, v2, v3
.line 297
add-int/lit8 v3, v3, 0x1
goto :goto_78
.line 302
:cond_93
const/4 v11, 0x5
sub-int v11, v3, v11
aget-char v11, v2, v11
iget-object v12, p0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
const/4 v13, 0x1
sub-int v13, v3, v13
invoke-virtual {v12, v13}, Ljava/lang/String;->charAt(I)C
move-result v12
if-eq v11, v12, :cond_a6
const/4 v11, 0x0
goto/16 :goto_1e
.line 300
:cond_a6
add-int/lit8 v3, v3, 0x1
.prologue
.line 309
const-wide/16 v5, 0xb61
.line 310
.local v5, DW1:J
const-wide/16 v16, 0x0
.line 311
.local v16, tol:J
const/16 v18, 0x6
move/from16 v0, v18
new-array v0, v0, [C
move-object v7, v0
.line 313
.local v7, cnum:[C
const-string v9, ""
.line 315
.local v9, stmp:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v0, v0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
move-object/from16 v18, v0
invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->length()I
move-result v18
const/16 v19, 0xf
move/from16 v0, v18
move/from16 v1, v19
if-ne v0, v1, :cond_31
move-object/from16 v0, p0
iget-object v0, v0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
move-object/from16 v18, v0
invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->length()I
move-result v18
const/16 v19, 0xc
move/from16 v0, v18
move/from16 v1, v19
if-eq v0, v1, :cond_34
:cond_31
const/16 v18, 0x0
.line 347
:goto_33
return v18
.line 316
:cond_34
const-wide/16 v10, 0x2710
.local v10, t1:J
const/16 v8, 0xb
.line 318
.local v8, ii:I
:cond_38
move-object/from16 v0, p0
iget-object v0, v0, LMy/XuanAo/BaZi/CSoftReg;->Fregcode:Ljava/lang/String;
move-object/from16 v18, v0
const/16 v19, 0x1
sub-int v19, v8, v19
invoke-virtual/range {v18 .. v19}, Ljava/lang/String;->charAt(I)C
move-result v18
const/16 v19, 0x30
sub-int v18, v18, v19
move/from16 v0, v18
int-to-long v0, v0
move-wide v12, v0
.line 319
.local v12, t2:J
mul-long v18, v12, v10
add-long v16, v16, v18
.line 320
add-int/lit8 v8, v8, 0x1
.line 321
const-wide/16 v18, 0xa
div-long v10, v10, v18
.line 322
const-wide/16 v18, 0x0
cmp-long v18, v10, v18
if-gtz v18, :cond_38
.line 323
const-wide/16 v18, 0xb61
move-object/from16 v0, p0
move-wide/from16 v1, v18
invoke-virtual {v0, v1, v2}, LMy/XuanAo/BaZi/CSoftReg;->SnCal(J)J
move-result-wide v18
xor-long v16, v16, v18
.line 324
const-wide/16 v18, 0xb61
xor-long v16, v16, v18
.line 325
const-wide/16 v10, 0x0
const-wide/16 v14, 0x3e8
.line 326
.local v14, t3:J
const/16 v8, 0xc
:goto_74
if-gez v8, :cond_c6
.line 332
move-wide/from16 v16, v10
.line 333
invoke-static/range {v16 .. v17}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v18
invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v9
.line 334
invoke-virtual {v9}, Ljava/lang/String;->length()I
move-result v18
move/from16 v0, v18
int-to-long v0, v0
move-wide v10, v0
.line 335
const/16 v18, 0x0
move-wide v0, v10
long-to-int v0, v0
move/from16 v19, v0
const/16 v20, 0x0
move-object v0, v9
move/from16 v1, v18
move/from16 v2, v19
move-object v3, v7
move/from16 v4, v20
invoke-virtual {v0, v1, v2, v3, v4}, Ljava/lang/String;->getChars(II[CI)V
.line 336
const-wide/16 v18, 0x4
cmp-long v18, v10, v18
if-gez v18, :cond_b9
.line 337
const-wide/16 v18, 0x4
sub-long v12, v18, v10
.line 338
const-wide/16 v18, 0x1
sub-long v18, v10, v18
move-wide/from16 v0, v18
long-to-int v0, v0
move v8, v0
:goto_ad
if-gez v8, :cond_df
.line 340
const/4 v8, 0x0
:goto_b0
move-wide v0, v12
long-to-int v0, v0
move/from16 v18, v0
move v0, v8
move/from16 v1, v18
if-lt v0, v1, :cond_f1
.line 343
:cond_b9
const/16 v8, 0x9
:goto_bb
const/16 v18, 0xc
move v0, v8
move/from16 v1, v18
if-le v0, v1, :cond_f8
.line 347
const/16 v18, 0x1
goto/16 :goto_33
.line 328
:cond_c6
shr-long v18, v16, v8
const-wide/16 v20, 0xf
and-long v18, v18, v20
const-wide/16 v20, 0x2a
add-long v12, v18, v20
.line 329
const-wide/16 v18, 0x30
sub-long v18, v12, v18
mul-long v18, v18, v14
add-long v10, v10, v18
.line 330
const-wide/16 v18, 0xa
div-long v14, v14, v18
.line 326
add-int/lit8 v8, v8, -0x4
goto :goto_74
.line 339
:cond_df
move v0, v8
int-to-long v0, v0
move-wide/from16 v18, v0
add-long v18, v18, v12
move-wide/from16 v0, v18
long-to-int v0, v0
move/from16 v18, v0
aget-char v19, v7, v8
aput-char v19, v7, v18
.line 338
add-int/lit8 v8, v8, -0x1
goto :goto_ad
.line 341
:cond_f1
const/16 v18, 0x30
aput-char v18, v7, v8
.line 340
add-int/lit8 v8, v8, 0x1
goto :goto_b0
.line 345
:cond_f8
const/16 v18, 0x9
sub-int v18, v8, v18
aget-char v18, v7, v18
move-object/from16 v0, p0
iget-object v0, v0, LMy/XuanAo/BaZi/CSoftReg;->Fsoftsn:Ljava/lang/String;
move-object/from16 v19, v0
const/16 v20, 0x1
sub-int v20, v8, v20
invoke-virtual/range {v19 .. v20}, Ljava/lang/String;->charAt(I)C
move-result v19
move/from16 v0, v18
move/from16 v1, v19
if-eq v0, v1, :cond_116
const/16 v18, 0x0
goto/16 :goto_33
.line 343
:cond_116
add-int/lit8 v8, v8, 0x1
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!