-
-
Android第一题
-
发表于: 2015-10-20 16:44 2545
-
首先dex2jar+jd-gui载入看看
onClick()中启动另外一个线程来改变文本:当传递的消息为0时触发除0异常,进而显示通过的文本;
这里jd-gui对run()中的循环结构分析是不正确的,需要对照smali来分析;jd-gui没有解析check()函数,直接上调试;
随便输入字符串,发现抛异常了,看到是要将输入的字符串转换为数字;OK,输入111,没有抛出异常,说明函数正常执行了而且返回了False;在check()函数中搜索return,只有一处:
此处有4个来源,全部下断,其中两处很明显,且来自于同一个判断:
运行一次,正好断在了返回false的地方;回到刚才的判断处,观察此处用v4, v8, v6计算出的值与v10进行了比较,v4, v6都是常量,变量只有v8, v10,换几个不同的输入多观察两次,可以发现v8的值也是固定的,同时可以印证v10与输入相关且目标值为520676;
接下来寻找从输入到v10的计算过程,简单向上观察一下可以发现v10的计算过程很靠前,直接把dex拖进IDA,来到刚才的判断处,空格,向上查找最近的判断分支,略过大多数顺序流程,来到这里:
loc_124DA对应的smali标号为:cond4,下断,发现此处v10已经是计算过的值,继续向上查找,不远处来到loc_704C:
这里有一个循环,而且上面的loc_7036有一个对v10的赋值操作:
看上去很有可能就是这里对输入进行了计算,验证一下,在赋值处和循环起始处下断(观察v10的计算过程);果然,在赋值处观察到v10为输入值,而循环一共执行到v17为0x3E9=1001,在循环处每次断下来后,可以发现v17和v10的变化都是有规律的:
v17=1,5,9,13...1001
v10=v10+v17
结果已经很明了了,要的输入就是520676-sum(1,5,9...1001)=394925,输入之,发现还是不对,而此时v10的值为519675,与520676正好相差1001,OK,输入394925+1001=395926,没有问题,如愿通过
onClick()中启动另外一个线程来改变文本:当传递的消息为0时触发除0异常,进而显示通过的文本;
这里jd-gui对run()中的循环结构分析是不正确的,需要对照smali来分析;jd-gui没有解析check()函数,直接上调试;
随便输入字符串,发现抛异常了,看到是要将输入的字符串转换为数字;OK,输入111,没有抛出异常,说明函数正常执行了而且返回了False;在check()函数中搜索return,只有一处:
locret: return
此处有4个来源,全部下断,其中两处很明显,且来自于同一个判断:
const/4 v4, 1 goto/16 locret loc_124D4: const/4 v4, 0 goto/16 locret
运行一次,正好断在了返回false的地方;回到刚才的判断处,观察此处用v4, v8, v6计算出的值与v10进行了比较,v4, v6都是常量,变量只有v8, v10,换几个不同的输入多观察两次,可以发现v8的值也是固定的,同时可以印证v10与输入相关且目标值为520676;
接下来寻找从输入到v10的计算过程,简单向上观察一下可以发现v10的计算过程很靠前,直接把dex拖进IDA,来到刚才的判断处,空格,向上查找最近的判断分支,略过大多数顺序流程,来到这里:
CODE:0000FAA0 and-int/lit8 v4, v4, 0xF CODE:0000FAA4 if-ltz v4, loc_124DA CODE:0000FAA8 const/16 v4, 0x15
loc_124DA对应的smali标号为:cond4,下断,发现此处v10已经是计算过的值,继续向上查找,不远处来到loc_704C:
const/16 v5, 0x3E9 move/from16 v0, v17 if-ge v0, v5, loc_EE70
这里有一个循环,而且上面的loc_7036有一个对v10的赋值操作:
move-wide/from16 v10:v11, v18:v19
看上去很有可能就是这里对输入进行了计算,验证一下,在赋值处和循环起始处下断(观察v10的计算过程);果然,在赋值处观察到v10为输入值,而循环一共执行到v17为0x3E9=1001,在循环处每次断下来后,可以发现v17和v10的变化都是有规律的:
v17=1,5,9,13...1001
v10=v10+v17
结果已经很明了了,要的输入就是520676-sum(1,5,9...1001)=394925,输入之,发现还是不对,而此时v10的值为519675,与520676正好相差1001,OK,输入394925+1001=395926,没有问题,如愿通过
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: