-
-
[原创]第一题解题思路
-
发表于: 2015-10-19 09:32 2861
-
1、反编译成smali,最后是通过判断两个长整型是否一致,来决定是否破解成功。
于是在两个长整型对比前注入smali,打出两个长整型的log。见下面代码:
const-wide/32 v4, 0xf4240
rem-long v4, v8, v4
const-wide/32 v6, 0x1e74e
add-long/2addr v4, v6
invoke-static {v4, v5}, Lcrack;->J(J)V
invoke-static {v10, v11}, Lcrack;->J(J)V
cmp-long v4, v4, v10
if-eqz v4, :cond_3
const/4 v4, 0x1
goto/16 :goto_0
2、输入字符串,会抛出异常,于是大概可判断密码为数字。输入变化,但是v4一直不变为520676。当输入为7位数时,v4才会变化,于是假设密码为6位。
3、最开始输入200000,得到的到v10小于520676,当输入500000,得到的v10大于520676,于是采用折半查找,依次尝试,最终确定密码为395926。
于是在两个长整型对比前注入smali,打出两个长整型的log。见下面代码:
const-wide/32 v4, 0xf4240
rem-long v4, v8, v4
const-wide/32 v6, 0x1e74e
add-long/2addr v4, v6
invoke-static {v4, v5}, Lcrack;->J(J)V
invoke-static {v10, v11}, Lcrack;->J(J)V
cmp-long v4, v4, v10
if-eqz v4, :cond_3
const/4 v4, 0x1
goto/16 :goto_0
2、输入字符串,会抛出异常,于是大概可判断密码为数字。输入变化,但是v4一直不变为520676。当输入为7位数时,v4才会变化,于是假设密码为6位。
3、最开始输入200000,得到的到v10小于520676,当输入500000,得到的v10大于520676,于是采用折半查找,依次尝试,最终确定密码为395926。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: