能力值:
( LV9,RANK:3410 )
|
-
-
2 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这个DLL文件单独可以执行啊,还是好判断脱出来没有的嘛
谢谢FLY兄的贡献,我正想学一下脱DLL壳的办法,主要是输入表
和重定向表的问题,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我脱了这个dll,没有这么麻烦。
用大哥你的esp定律1秒钟到oep,然后用ollydump直接脱壳
用importsec修复,搞定!可以运行
总共没有用到1分钟........................
下面是我脱出来的,和你的不太一样
点击下载:附件!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
学习ing
|
能力值:
( LV9,RANK:3410 )
|
-
-
6 楼
最初由 gcf 发布 我脱了这个dll,没有这么麻烦。 用大哥你的esp定律1秒钟到oep,然后用ollydump直接脱壳 用importsec修复,搞定!可以运行 总共没有用到1分钟........................ 下面是我脱出来的,和你的不太一样
点击下载:附件! 旧版的PECompact壳直接就能看到OEP了
如果不修复重定位表的话则很难跨平台运行,你可以用DLL_Loader.exe加载看看
|
能力值:
( LV9,RANK:290 )
|
-
-
7 楼
最初由 pediy 发布
你的重定位表不完整,虽然一般情况下DLL不重定位可以运行,但如果其基地被占用的话就需要重定位,这种情况下就会出错的。
看雪老师,有一事请教,记得在《加密与解密》第2版里对DLL的脱壳时,说过aspack加的壳没有重定位,而upx的重定位了,但是看书上的内容时,两篇文章的基址不都是9DXXXX吗,这样不是都与其400000不一样吗?怎么判断出一个重定位了,而令一个没有呢(记得说判断其是否重定位的方法,就是先查看并记住其甚址,然后看看与加载后的是否一致,若不一致则为重定位)。另:看了一下光盘上脱出来的aspack与upx的文件,确实aspack加壳的脱壳文件在修复后其基址仍为400000,而upx的已经修改为9d0000了。并且我自己练习时也发现脱upx的,须修复一下基址(保证与当时加载时的基址一致)
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢FLY!我学习学习再学习;)
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
呵呵,多谢两位大哥的指教,又学到了一些东西!真是佩服你们
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
等这篇文章等了很久……
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
学习ing
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
hao
|
能力值:
( LV9,RANK:3410 )
|
-
-
13 楼
最初由 sharenpk 发布
我的理解是,如果发现重定位了,也就是跨平台很可能会出问题,或者载入dll 的时候基地址没被占用,才能运行正常。 如果要跨平台或者基地址被占用,就必须要修重定位表
我还有个问题 比如说我第一次载入dll 基地址是10000000,走到OEP过后看下面代码 833D AC300210 00 CMP DWORD PTR DS:[100230AC], 0
第二次载入dll 基地址是20000000,走到OEP过后看下面代码 833D AC300220 00 CMP DWORD PTR DS:[200230AC], 0 脱壳出来后这些都是 绝对地址,那万一基地址被占用就要出错啊。该如何解决? 脱壳后修复重定位表就不必担心这个问题了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
版主:
这个DLL古怪,它有30个导出函数,居然指向同一个地址。
导出函数表需要修复吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
目前我在破一个DLL文件,他用JPACK加的壳,通过追踪,找到了他的注册比较指令。我想直接将这条指令修改后保存文件,这样可以吗?这个重新保存的文件是否存在重建输入表的问题?这样修改是否在脱壳后才可以进行?
|
能力值:
( LV9,RANK:3410 )
|
-
-
16 楼
导出函数 不需要修复吧
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
试试这个
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
最初由 fly 发布 …… 10037000 EB 06 jmp short ftgg.10037008//进入OD后停在这 10037002 68 90960000 push 9690//OEP的RVA 10037007 C3 retn 10037008 9C pushfd 10037009 60 pushad 1003700A E8 02000000 call ftgg.10037011
……
大侠,用Ollydbg1.10C才会停在上面说的地方,而用Ollydbg1.10B不会,为什么会这样?
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
我想把我的DLL文件放上论坛,怎么办?
说明一下:
1、它检测反调试软件;
2、输入注册码后不立即比较,而是写成一个INI文件放在WINNT下;
3、根据WINNT下的SYSTEM。INI的时间信息决定使用期限。
目前我分析的只有这些。针对2,我发现其总有一条比较指令CMP EAX,7D,于是我把7D改成了EAX中的值,重新保存。但运行时没有任何反应,而且用OD调试找不到原来的地方。
我的疑问:
1、上面我说的比较指令是否为动态生成的。
2、是这个DLL文件存在反修改指令。
3、是否先脱壳再修改?
4、如果脱壳的话,我怎么断在壳的入口点,因为我发现一加载,程序就过去了,没有办法跟踪壳的加载过程。
谢谢
附件传不上来,给个地址吧: http://myfxj.yeah.net
的公式区赠送版下载
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
努力学习,争取早日达到如此高度。
|
能力值:
( LV7,RANK:100 )
|
-
-
21 楼
纳闷我去年买的《加密解密》第2版放在家里发霉,出门时忘记了带了
|
能力值:
(RANK: )
|
-
-
22 楼
谢谢 + 佩服 ( fly 总能找出时间来总结他的经验 )
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
好厉害~~~~~
|
能力值:
( LV9,RANK:3410 )
|
-
-
24 楼
最初由 guidaon 发布 点击下载:附件!
试试这个 呵呵,兄弟,别说是需要Key的DLL了,就是需要Key的Armadillo壳EXE文件也无法脱壳
当然,你如果能搞到能用Key或许还有希望试试
|
能力值:
( LV9,RANK:3410 )
|
-
-
25 楼
最初由 zhangld 发布 目前我在破一个DLL文件,他用JPACK加的壳,通过追踪,找到了他的注册比较指令。我想直接将这条指令修改后保存文件,这样可以吗?这个重新保存的文件是否存在重建输入表的问题?这样修改是否在脱壳后才可以进行? 应该是需要脱壳后才能修改保存的
DLL由于重定位的问题,用SMC可能也不行
|
|
|