首页
社区
课程
招聘
[原创]2015移动安全挑战赛第一题
2015-1-25 19:45 1680

[原创]2015移动安全挑战赛第一题

2015-1-25 19:45
1680
第一题比较简单,其实就是将你输入的字符串用一个数据表转换一下,然后和转换后的答案对比。最开心的是它把这些数据都打印出来了。

table:一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐

pw:义弓么丸广之

所以我只需要通过table把“义弓么丸广之”的原码转换出来就可以了,通过androguard找到转换方法如下:
private static String bytesToAliSmsCode(String p3, byte[] p4) {
    StringBuilder v1_1 = new StringBuilder();
    int v0 = 0;
    while (v0 < p4.length) {
      v1_1.append(p3.charAt((p4[v0] & 255)));
      v0++;
    }
    return v1_1.toString();
}
这样的话,写下一小段代码反转一下“义弓么丸广之”:
System.out.println(table.indexOf("义"));
System.out.println(table.indexOf("弓"));
System.out.println(table.indexOf("么"));
System.out.println(table.indexOf("丸"));
System.out.println(table.indexOf("广"));
System.out.println(table.indexOf("之"));
输出:
//53
//56
//49
//48
//50
这样就输出了答案对应的ascii码,所以答案就对应为“581026”

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回