首页
社区
课程
招聘
ASProtect 1.0一直跑飞,郁闷。在加密解密版没人回,发到这边来看看有没高手帮帮忙
发表于: 2006-10-4 18:28 5023

ASProtect 1.0一直跑飞,郁闷。在加密解密版没人回,发到这边来看看有没高手帮帮忙

2006-10-4 18:28
5023
新手入门,在看坛主写的《加密与解密--软件保护技术及解决方案》,脱壳这一章。脱ASProtect 1.0时,按书的方法跟踪,跟到0040dc28 时还算正确。
0040DC28     C3              retn

这个返回后,返回到一个系统调用中。按Ctrl+F9跳出。跳出的位置就不像书上说的,00478f45了,而是另一个地址,不过代码是一样的。

00189701     60              pushad
00189702     E8 44060000     call    00189D4B
00189707     EB 44           jmp     short 0018974D

就是Call,和jmp的地址与书上所讲的不同。接着跟,跟到第三部分的那6个call时,第一个call就过不去了,会跟到一个无代码的内存地址去。然后就下不去了。

跟一个晚上,整整有十几趟吧。全都在6个call的第一个那边过不去

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
先玩简单的壳
压缩壳->一般保护壳->猛壳
循序渐进
2006-10-4 19:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是啊,我是按这个顺序来的啊,之前也看了不少论坛上的贴子才下手做的。从《加密解密》第七章的几个实例一个个做下来的。做到asprotect 1.0这边卡住了。

我很不理解的是,为什么会跑飞??我是按书上一步步来的,居然也会跟飞了。从跟踪的结果看,应该是调用一个未解压出来的地址上的函数,导致了读空内存出错。那么说之前跑的过的代码中,应该有一段是对那个地址内存申请或者解密的代码,但我没找着。好像每一次的代码都不一样。

我非常认真的跟至少四遍以上(不包括之前用书上教的快速返回的方法),我是用单步啊,一次跟到出错的地方就得十几分钟,结果还是错。

郁闷啊。但决不放弃,跟这家伙卯上了。

谁能讲解一下,ASProtect如何让调试器跑飞?这是一种反跟踪手段吗??还是用什么别的办法??
2006-10-5 01:04
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 weloveit 发布
谁能讲解一下,ASProtect如何让调试器跑飞?这是一种反跟踪手段吗??还是用什么别的办法??
........


是不是这个例子?

http://www.pediy.com/bbshtml/bbs6/pediy6705.htm

如是,用hideOD插件可以隐藏。

ASProtect 1.x的壳还是比较老的,你用OD脱重点放在找OEP上(用内存断点),不必从头单步跟踪。
2006-10-5 11:39
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在NT内核下使用Ring3的调试器就会这样!
看看这里:
http://bbs.pediy.com/showthread.php?s=&threadid=6962
2006-10-5 18:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我用HideOD隐藏过了,也没用。之前没看过hexer大侠的那篇贴子,不过我用别的方式绕过了它的那个内存报错。我曾想过可能是OD本身的问题,所以首先想到的是HideOD,后来没用后,我又去找了个SoftIce装上,最晕的是我不会设置SoftIce,配了半天还是没运行起来。

最终在0040DC28 RET这里按了下F9,跳到一个好像是kernel32的函数里去了,再ALT+F9,就这样绕过去了,连我自已都没看清楚为什么,再F8几次就看到popad了。  

F9的本意不是让程序运行起来吗?为什么没设断点会跑到kernel里面去??
2006-10-7 02:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
http://www.pediy.com/bbshtml/bbs6/pediy6705.htm

要是早看到这篇文章就好了,我就不用卡这么久了。

顺便问一句:原来的bbs.pediy.com不能登录了吗?为什么这两天都不行??
2006-10-7 02:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
找到OEP了,也找到书上说的未加密的输入表数据了,可是不知道怎么重建输入表。

hying如是说:这些就是输入表的数据,而且是未回密的,每个地址(比如BFE81534)都指向一个系统函数调用的入口。可把它们保存下来以便随后重建输入表。

然后在用ASProtect 1.1来演示了如何用Import Reconstructor来修复输入表,只是说要手动填入输入地址表的偏移和大小。然后按Get Import即可

我依他所言,找到OEP后Dump出内存文件。然后重新开始(因为到OEP处输入表已经被加密了),找到输入表未加密的时机,打开Import Rec,选择内存中的这个加壳的文件,填入RVA和Size,地址是得到了。可是都是Invalid。

我要怎么办呢??
2006-10-7 15:54
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
这个版本好象可以到OEP处再用Import Rec修复,其中有几个无效的指针,用aspr的插件追踪一下即可。
2006-10-7 20:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
到oep处用import Rec修复的话,可以修复其中一个,也就是GDI32.dll下的函数调用。其它的函数怎么在ImportRec中修复呢??

照书上说的,在未到OEP之前有一个地方可以得到完整的未加密的IAT。我从那里下手,为什么用Import Rec反而一个也找不到呢??
2006-10-8 09:51
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
11
先用追踪级别1追,再用aspr插件追,另外rva和size要搞准。
2006-10-8 18:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
最初由 moon 发布
先用追踪级别1追,再用aspr插件追,另外rva和size要搞准。


先用追踪级别1追??不懂得是什么意思。

rva和size是指加密后的,还是没回加密的rva和size??
2006-10-8 18:46
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
13
都是IMR中的事儿。多看点儿教程,照葫芦画瓢就能搞定,自己多下功夫最重要。
2006-10-9 19:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不好意思,术语太专业了点,起先没看懂。我用Import Rec里的三个trace级别都追过了,没搞定。aspr也用了,还是不行。慢慢来吧,只好先脱别的例子了
2006-10-10 11:00
0
游客
登录 | 注册 方可回帖
返回
//