能力值:
( LV2,RANK:10 )
|
-
-
51 楼
在调式的时候遇到一个问题,
在shelladdress2.c中加密后在写入文件时,偏移不对,导致运行出错
//lseek(fd, info.st_value, SEEK_SET); 应该是 info.st_value-1
lseek(fd, info.st_value-1, SEEK_SET);
if(write(fd, content, info.st_size) != info.st_size)
{
puts("Write modified content to .so failed");
goto _error;
}
|
能力值:
( LV9,RANK:310 )
|
-
-
52 楼
嗯,这里处理得不是很好。 如果编译的指令为Thumb,那么st_value = addr + 1;如果为ARM,则st_value = addr。较好一点应该对指令进行判断分类处理。
|
能力值:
( LV3,RANK:20 )
|
-
-
53 楼
TK大神你好!有个问题,Android elf壳可以不可以通过修改程序入口点来实现呢?入口地址指向解壳程序,在解壳程序的结尾跳转到init_array
|
能力值:
( LV9,RANK:310 )
|
-
-
54 楼
小菜一枚,大哥不要折煞小弟了。
应该不行吧,现在的APP加固是通过SO文件来实现。 但SO文件是动态链接库,是没有入口点的吧。 加载时入口是linker。如果是一个普通可执行程序而不是APP的话,应该可以通过修改入口点来实现,就和PC平台的加壳相同了吧(个人想法,木有实践 )
|
能力值:
( LV3,RANK:20 )
|
-
-
55 楼
多谢TK大神指导!的确这个思路不行,哈哈。
|
能力值:
( LV4,RANK:50 )
|
-
-
56 楼
好文章,学习下~~
|
能力值:
( LV5,RANK:60 )
|
-
-
57 楼
哪位能解释下ehdr.e_entry = (length << 16) + nsize的含义么,小菜表示不懂。
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
这么好的贴,学习了。
|
能力值:
( LV5,RANK:60 )
|
-
-
59 楼
我在源码里看到修改权限时mprotect((void *) base, 4096 * nsize, PROT_READ | PROT_EXEC | PROT_WRITE) != 0, base = getLibAddr();,但起始的地址为什么不是 text_addr = ehdr->e_shoff + base;。base不是整个so的地址?应该是text_addr 段的起始地址才对?请大神指导下。。。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
60 楼
楼主写的太好了,非常感谢,但有一点不明:
为什么要通过hash表查找函数名,elf中的符号表数据大小不是固定0x10的吗,而且连续,直接遍历查找函数名就可以
|
能力值:
( LV2,RANK:10 )
|
-
-
61 楼
支持支持,谢谢分享。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
62 楼
必须强烈支持.学到不少东西.
|
能力值:
( LV2,RANK:10 )
|
-
-
63 楼
请教下大家,shelldemo2.zip 里的shellAdder2.c我用GCC编译一直报elf.h文件未找到,这要怎么解决。
|
能力值:
( LV2,RANK:10 )
|
-
-
64 楼
楼主你好,文中的“也有一些对抗dump的方法,这里就不展开了”,请问能讲讲大概思路吗。因为如果在Jni_onload之前下断的话so就已经加载进内存了,还如何对抗dump呢。请教~
|
能力值:
( LV3,RANK:20 )
|
-
-
65 楼
谢谢分享~
|
能力值:
( LV3,RANK:30 )
|
-
-
66 楼
有渗透测试APP的工作,愿意业余时间接吗。主要是要解开.so库的逻辑。年薪30万是否有意愿加盟。
|
能力值:
( LV12,RANK:345 )
|
-
-
67 楼
在吗?我遇到cacheflush在android 2.3刷新失败的问题,想求助下你
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
cacheflush(起始地址, 终止地址, 0)
MOV R0, 起始地址
MOV R1, 终止地址
MOV R2, #0
MOV R7, #0xF0002
SVC 0
|
能力值:
( LV12,RANK:345 )
|
-
-
69 楼
你说的这个cacheflush已经做了,还是有崩溃,不过方法已经找到了,重新读取下刷新内存区就ok
|
能力值:
( LV2,RANK:10 )
|
-
-
70 楼
密码已破 哇卡卡卡
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
小菜一枚。同样是Run ShellDemo2的代码时运行到这里出错,求教各位大神是什么原因。
|
能力值:
( LV4,RANK:50 )
|
-
-
72 楼
mark
|
能力值:
( LV3,RANK:20 )
|
-
-
73 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
74 楼
试了下,e_type和e_machine不能改
|
能力值:
( LV2,RANK:10 )
|
-
-
75 楼
打印一下出错信息应该是这个吧:Cannot allocate memory
下面贴子是解决方案。
http://blog.csdn.net/smileteo/article/details/39961025
不过我出错的原因是,64位机器上面跑的。。。代码里要改成Elf64_Shdr这些64位用的结构
|
|
|