首页
社区
课程
招聘
themida dump后修复
发表于: 2006-9-17 13:45 5324

themida dump后修复

2006-9-17 13:45
5324
在看过hnhuqiong的文章后 ,成功将themdia加壳程序dump了下来,可是始终修复不了,搜索论坛贴,相关讨论很少,希望高人指导一下.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 420
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
hnhuqiong对付themdia的文章在那里啊
2006-9-17 15:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没有高手回答一下?
2006-9-17 19:30
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
4
你指的是修复哪一部分?

vm之外的,没有多少特别的,自己跟一次就知道了.

有篇Themida updated xptotector,大部分修复相关的东西都涉及了,是俄文的在WASM。

to hnhuqiong:还玩混淆代码清理吗
2006-9-17 20:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最好能教我怎么一步一步的修复了,俄文的还是看不懂啊,不能解决问题!
2006-9-17 23:00
0
雪    币: 233
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
什么版本的themida?
2006-9-18 10:14
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
7
用在线翻译软件来看,我也是这样看的。

另外,很多细节已经忘了,没有时间来重新熟悉写教程。只能大致
说一下。我想你还是跟一下更好,还是那句话,自己跟一下什么都清
楚了。

壳代码中有VM保护代码,在VM内搜索popad/popf,这是vm的出口,对
所有出口下断以免跟飞了。

1. 在dump前,应完成以下步骤。

   避开iat加密(改4个跳转以及自校验)。
  获取被patch的 jmp [iat]代码地址,用脚本或另写个程序,修复被
   改为E9 xx xx xx xx的jmp [iat]代码。

   获取bound-dll数据,写个程序解出来。

   这些东西在跟的过程中都可以看见,有些数据壳使用完后销毁了。
   
2. 这时可以dump一次,反汇编,搜索对wsprintf的调用,有部分是
   SDK,从参数可以看出来,是成对出现的,用OllyScript可以解决。
   直接把eip置过去运行(在下一句下硬件断点),即可解码。完成后
  nop掉这些wsprinf调用.

3. 用类似2的办法解决ENCRYPT_START/ENCRYPT_END和CLEAR_START/CLEAR_END
   保护的代码(后一个我没碰到过),这些宏为18 bytes,只要在后面下硬件断
   点即可(这种保护看起来是call到壳代码)。

   ENCRYPT_START/ENCRYPT_END是成对出现的,先解码,然后才能看到重新
   加密代码的call,完成后nop掉这些call。

4. 上面的2,3是在dump点完成的,再次dump,修复iat

5. patch对运行线程数的检测

6. 现在只剩vm保护代码的修复了。这种代码是连续2个jmp到壳代码,
   然后是连续的push xxx/jmp xxx。这种代码的修复我没有简单的办法。
  我以前的做法基本是手工修复的,没有实战价值。很多东西也没有吃透。
  如果有时间也许会再看。

我记得的就这些了,你最好还是自己跟一跟。
  
2006-9-18 13:08
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
softworm版主:

请教一个问题 Themida1.7.3.0在原有的 1.3.5.5基础上增加反调试器都有哪些手段(能告诉我api我自己跟就行),以前的hnhuqiong那篇文章可以用Ollydbg加载并运行的,现在的版本加壳后不是说找到DEBUGGER,就是异常退出。
2006-9-18 19:24
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
9
1730我没有跟过,试过一下1800 demo,anti-debug是增强了。我的OD是改过的,报检测到debugger。跳过一处可以跑。

代码用VM保护了,具体实现不清楚。但是可以定位,Themida用CreateFile自己加载的kernel32内的IsDebuggerPresent,找到这个位置下断,会执行到这里。执行后返回到壳代码后,push/jmp会再次进入VM,这段代码内有问题,会从错误出口走,报检测到debugger。

正确的出口应该到这串push/jmp下面一点,稍为试试可以看到合理的代码位置,是变形为call的jmp。

在push/jmp到这段有问题的vm代码后,在vm出口下断,断下后把eip置到上面找出的call的地址就行了。
2006-9-18 19:51
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
谢谢         softworm的指点!!
2006-9-18 21:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢softworm指点,看来这个壳还是很猛,还要继续学习!
2006-9-18 23:49
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不懂  先顶起来学习
2006-9-30 18:18
0
游客
登录 | 注册 方可回帖
返回
//