ali crack 第三题
2019-08-21 本文已影响0人
超威蓝猫l
![](https://img.haomeiwen.com/i2885168/9ab4ace62cd6be85.png)
界面如下
![](https://img.haomeiwen.com/i2885168/501a5fd35bf64c3b.png)
代码被加壳
要脱壳
然后我的机器是6.0的,跑不了。这个壳不兼容art
所以费劲下载了一个arm的官方模拟器。真的是卡呀。
attach了很久才连上
老步骤。
装上debug版本
然后打开手机的android server
am shell 进入调试模式
ida attach上去 并在dvmDexFileOpenPartial中打上断点
jdb命令连接上去
然后f8过了push即可
![](https://img.haomeiwen.com/i2885168/847fd50b307380b9.png)
然后一个知识点是r0到r4寄存器一般是用来存放一个函数的参数值的。
第一个参数是dex内存的起始地址 第二个参数是dex的大小
![](https://img.haomeiwen.com/i2885168/c0d6a9c4e920e40e.png)
shift+f2 调出脚本dump数据
static main(void){
auto fp,dex_addr,end_addr;
fp = fopen("g:\\dump.dex","wb");
end_addr = r0+r1;
for(dex_addr = r0;dex_addr<end_addr;dex_addr++){
fputc(Byte(dex_addr),fp);
}
}
![](https://img.haomeiwen.com/i2885168/0bf38a8429c28b58.png)
![](https://img.haomeiwen.com/i2885168/abbb905dc326a495.png)
dump出来的dex就可以看了
![](https://img.haomeiwen.com/i2885168/a2247fbae529b475.png)
这个地方可以xposed 解 。也可以写一个项目自己倒包解。也可以网页解。
<<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function findMethodName(){
for (var obj in window) {
if ("getClass" in window[obj]) {
return window[obj]
}
}
}
</script>
<script type="text/javascript">
var obj = findMethodName()
obj.showToast()
alert(obj)
</script>
</body>
</html>
文件放到/data/data/包名里面
xposed解出来是SmokeyBear 我就不解了。懒了。