CTF002
1. 通过hook脚本暴力破解
进入入口点之后,简单查看一下代码的逻辑
可以发现密码是一个六位数字,经过encode函数加密后跟预定的值进行比较,比较相等就通过。
查看这个encode函数使用了sha1摘要算法,这样我们并不能根据hook某一个点位直接获取到正确的密钥,
因为密码是六位数字存在暴力破解的可能,我们可以直接hook这个encode函数来做一个暴力破解。
因为这个_public class MainActivity extends Activity类不是一个静态类,所以不能直接通过类去调用里面的函数,所以不能直接用Java.use()_的方式写脚本,需要使用**choose()方法去内存中查找到类MainActivity**的实例之后再使用类方法
// 使用 setImmediate 在下一个事件循环中执行代码,防止脚本执行过程中报错Failed to load script: timeout was reached
setImmediate(function(){
// 在 Java 环境中执行代码
Java.perform(function(){
// 寻找指定类的实例
Java.choose("com.android.ctf.MainActivity",{
// 当匹配到实例时的回调函数
"onMatch":function(instance){
console.log("找到实例");
var str = Java.use("java.lang.String");
var Integer = Java.use("java.lang.Integer")
var start = 100000; // 起始值
var end = 1000000; // 结束值
for (var i = start; i < end; i++) {
// 将整数转换为字符串
var result = instance.encode(Integer.toString(i));
if (result === "6574f28f75dddc488f3c7c21fddfa0cd16901206") {
console.log("找到密码: " + i);
return; // 找到密码后立即返回
}
}
},
// 堆搜索完成时的回调函数
"onComplete":function(){
console.log("堆搜索完成");
}
});
});
});
执行脚本:这个脚本执行起来比较耗费时间,如果手机性能不够可能程序可能会崩溃,需要缩小搜索范围
2. 正向破解
因为这里有完整的算法,所以可以直接把算法扣出来写代码计算一下结果:
直接扣出来用Eclipse写java代码正向破解效率会更高,也不用担心程序崩溃的问题
package TestFlag002;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class TestFlag002 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 100000; i < 1000000; i++) {
if ("6574f28f75dddc488f3c7c21fddfa0cd16901206".equals(encode(Integer.toString(i)))) {
System.out.println(i);
}
}
}
public static String encode(String decript) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(decript.getBytes());
byte[] messageDigest = digest.digest();
StringBuilder hexString = new StringBuilder();
for (byte b : messageDigest) {
String shaHex = Integer.toHexString(b & 255);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
}
}
运行一秒钟就可以出结果,效率更高。
- 标题: CTF002
- 作者: xiaoeryu
- 创建于 : 2023-07-09 14:48:43
- 更新于 : 2023-07-09 14:57:56
- 链接: https://github.com/xiaoeryu/2023/07/09/CTF002/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论