首页
社区
课程
招聘
[讨论]一个记事本引发的血案
发表于: 2006-10-18 20:43 7797

[讨论]一个记事本引发的血案

2006-10-18 20:43
7797
2006年10月18日20时

一个外星朋友丢了一个加了不知道什么的东西给我

要求来看雪论脱

经过2个小时的论脱

很多朋友都已经吐血

想知道详细情况  请看下面分解```

OD载入

0040D031 >/$  60            PUSHAD    //停在这里
0040D032  |.  50            PUSH EAX
0040D033  |.  53            PUSH EBX
0040D034  |.  51            PUSH ECX
0040D035  |.  50            PUSH EAX
0040D036  |.  52            PUSH EDX //一堆花指令
0040D037  |.  52            PUSH EDX
0040D038  |.  53            PUSH EBX
0040D039  |.  52            PUSH EDX
0040D03A  |.  50            PUSH EAX
0040D03B  |.  52            PUSH EDX
0040D03C  |.  52            PUSH EDX
0040D03D  |.  52            PUSH EDX
0040D03E  |.  3BD3          CMP EDX,EBX
0040D040  |.  5A            POP EDX                                  ;  ntdll.KiFastSystemCallRet
0040D041  |.  1BD8          SBB EBX,EAX
0040D043  |.  58            POP EAX
0040D044  |.  58            POP EAX
0040D045  |.  58            POP EAX
0040D046  |.  5A            POP EDX
0040D047  |.  11DA          ADC EDX,EBX
0040D049  |.  59            POP ECX
0040D04A  |.  58            POP EAX
0040D04B  |.  59            POP ECX
0040D04C  |.  09CA          OR EDX,ECX
0040D04E  |.  5A            POP EDX
0040D04F  |.  85D2          TEST EDX,EDX
0040D051  |.  5B            POP EBX
0040D052  |.  5B            POP EBX
0040D053  |.  1BC2          SBB EAX,EDX
0040D055  |.  85C3          TEST EBX,EAX
0040D057  |.  5A            POP EDX
0040D058  |.  61            POPAD
0040D059  |.  60            PUSHAD
0040D05A  |.  E8 A9FFFFFF   CALL 123.0040D008
0040D05F  |.  8BC3          MOV EAX,EBX
0040D061  |.  3E:8B00       MOV EAX,DWORD PTR DS:[EAX]
0040D064  |.  40            INC EAX
0040D065  |.  E8 AAFFFFFF   CALL 123.0040D014  //到这里F7进去 要不会飞
0040D06A  \.  CF            IRETD

0040D014  /$  40            INC EAX   //F7进到这里继续F8单步跟
0040D015  |.  3E:0FB600     MOVZX EAX,BYTE PTR DS:[EAX]
0040D019  |.  C1E0 03       SHL EAX,3
0040D01C  |.  83C0 4C       ADD EAX,4C
0040D01F  |.  36:010424     ADD DWORD PTR SS:[ESP],EAX
0040D023  \.  C3            RETN   //到这里返回
0040D024      BB            DB BB
0040D025      E6            DB E6

返回到

0040D0B6   .  61            POPAD   //返回到这里
0040D0B7   .^ E9 1640FFFF   JMP 123.004010D2  //条向OEP?
0040D0BC      83            DB 83
0040D0BD   .  02            DB 02

结果让我大失所望

004010D2    55              PUSH EBP   //来到这里
004010D3    8BEC            MOV EBP,ESP
004010D5    83EC 44         SUB ESP,44
004010D8    56              PUSH ESI
004010D9    FF15 E4634000   CALL DWORD PTR DS:[<&KERNEL32.GetCommand>; kernel32.GetCommandLineA
004010DF    8BF0            MOV ESI,EAX
004010E1    8A00            MOV AL,BYTE PTR DS:[EAX]
004010E3    3C 22           CMP AL,22
004010E5    75 1B           JNZ SHORT 123.00401102
004010E7    56              PUSH ESI
004010E8    FF15 F4644000   CALL DWORD PTR DS:[<&USER32.CharNextA>]  ; USER32.CharNextA
004010EE    8BF0            MOV ESI,EAX
004010F0    8A00            MOV AL,BYTE PTR DS:[EAX]
004010F2    84C0            TEST AL,AL
004010F4    74 04           JE SHORT 123.004010FA
004010F6    3C 22           CMP AL,22
004010F8  ^ 75 ED           JNZ SHORT 123.004010E7
004010FA    803E 22         CMP BYTE PTR DS:[ESI],22
004010FD    75 15           JNZ SHORT 123.00401114

一看OEP 010D2  

已知道OEP为 10cc 望上看一看 大吃一惊

004010BF    5C              POP ESP
004010C0    25 322E3264     AND EAX,64322E32
004010C5    5C              POP ESP
004010C6    25 322E3264     AND EAX,64322E32
004010CB    0000            ADD BYTE PTR DS:[EAX],AL
004010CD    000D 0A000055   ADD BYTE PTR DS:[5500000A],CL
004010D3    8BEC            MOV EBP,ESP
004010D5    83EC 44         SUB ESP,44

OEP代码被抽跑了?

讨论1 这个软件是壳 还是加的花指令?
讨论2 请高手写一个这个的完全分析 本人太菜 想学习 他是如何做到的


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (44)
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
2
这个壳几步跟就跟到了

不知道是 花指令

还是壳

如果是花指令 他是如何实现抽代码的功能的?

如果是壳 也就太`````
2006-10-18 21:11
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
3
都5个朋友下载了
还没一个朋友分析出来?
2006-10-18 21:35
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
4
有啥分析头?啥也不是,进入ep前调了一下IsDebuggerPresent而已。至于入口不是4010CC,我想是Win98版本差异的原因。
2006-10-18 21:44
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
最初由 softworm 发布
有啥分析头?啥也不是,进入ep前调了一下IsDebuggerPresent而已。至于入口不是4010CC,我想是Win98版本差异的原因。


呵呵 完全错误

加了 2程序 2语言 都是这样的 抽代码

OEP位置也不对softworm老大也太小看了把

如果按你这样说的 我就不会发出来找骂了
2006-10-18 22:00
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
6
如果你有主程序,发出来看看
2006-10-18 22:05
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
7
附上主程序
上传的附件:
2006-10-18 22:06
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
8
期待 softworm  的完美分析教程
2006-10-18 22:08
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
9
经测试`每个保护方式的 伪OEP地址不一样

请softworm版主用这个设置 写一个分析

如果你有心情把每个保护方式都分析一下 是最好的
2006-10-18 22:12
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
10
按你的设置处理Win98 notepad。

0040D084   .  E8 84FFFFFF   call test.0040D00D
->
0040D00D  /$  B8 18000000   mov eax,18
0040D012  |.  64:8B18       mov ebx,dword ptr fs:[eax]
0040D015  |.  83C3 30       add ebx,30
0040D018  \.  C3            retn

<-
0040D089   .  8BC3          mov eax,ebx
0040D08B   .  3E:8B00       mov eax,dword ptr ds:[eax]

eax为PEB

0040D08E   .  40            inc eax

0040D08F   .  E8 85FFFFFF   call test.0040D019
这里进去

0040D019  /$  40            inc eax
0040D01A  |.  3E:0FB600     movzx eax,byte ptr ds:[eax]
0040D01E  |.  C1E0 02       shl eax,2
0040D021  |.  83C0 75       add eax,75
0040D024  |.  36:010424     add dword ptr ss:[esp],eax
0040D028  \.  C3            retn

PEB+2处应为0,否则计算的返回地址错误

0040D109   ?  61            popad
0040D10A   .^ E9 D53FFFFF   jmp test.004010E4

就这些。真正有点意思的是把代码向下挪动了。在401000
处插入了一些字节,整个text区段向后顺序挪动。既然是
整个挪动,也不需要对代码进行修正

2006-10-18 22:14
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
11
还发现一个问题
居然是随机加密!

我一样的方式 在加一次

伪OEP地址又不一样了 真是神奇

对这个小东西越来越有兴趣了

随机加密 抽代码 西西 小东西功能真不少
2006-10-18 22:17
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
12
下载11个了 还没一个朋友发表结论

看来今天有的玩了 忽悠忽悠 哈哈
2006-10-18 22:28
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
13
最初由 softworm 发布
按你的设置处理Win98 notepad。

0040D084 . E8 84FFFFFF call test.0040D00D
->
0040D00D /$ B8 18000000 mov eax,18
........


请问他的 随机加密 和移动区端技术 是如何实现的?

另外 如何脱掉这个小东西?

请老大就拿我的记事本写个教程咯

因为每次都不一样
2006-10-18 22:35
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
14
我脱这个 输入10cc输入表也不行?

输入伪OEP 还是不行?

如果说
也不需要对代码进行修正

那么表怎么找回来 如何修复?

感觉表好象被加密了?
2006-10-18 22:36
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
15
那些随机生成的垃圾代码,什么也不做,跟加密没关系。移动区段,在text前面随机加若干byte,原来的copy到后面行了。

直接在挪动后的入口dump就行。我看作者主页上说得挺邪乎,不会是我真的搞错了吧
2006-10-18 22:40
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
16
请问softworm大侠

我发的记事本你成功脱壳没?

如果你脱了 OEP写的是10CC 指针可以修复

就证明你说的是对的?来把 干掉它
2006-10-18 22:45
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
17
要6个字要6个字要6个字要6个字。
上传的附件:
2006-10-18 22:47
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
18
最初由 bestchao 发布
请问softworm大侠

我发的记事本你成功脱壳没?

如果你脱了 OEP写的是10CC 指针可以修复
........


我为什么一定要把入口置在10CC?如果你愿意可以在OD里搞一下
2006-10-18 22:50
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
19
老大 你忽悠我

000010D2  OEP

已知 OEP为 10cc

如果换一个文件 这样脱 也许就不能正常运行了?
2006-10-18 22:51
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
20
这怎么是忽悠呢,这你都不能接受,那些补区段的又怎么办?
要这样脱出来的东西和原来的不100%一样都不算数了?

不会不运行的,除非被这玩艺处理过的本身就不行。你要弄回10CC把整个text再往前挪就是了
2006-10-18 22:55
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
21
最初由 softworm 发布
这怎么是忽悠呢,这你都不能接受,那些补区段的又怎么办?不会不运行的,除非被这玩艺处理过的本身就不行。你要弄回10CC把整个text再往前挪就是了


这下好 被你玩了

脱壳方法就是

在伪OEP处 DUMP?

然后输入伪OEP 就可以抓取有效指针?修复正常运行?
2006-10-18 22:57
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
22
本来就是这样的,是你自己想复杂了
2006-10-18 22:59
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
23
我想如果你这样忽悠我的话

我想

如果换一个文件 你就修复不了了?
2006-10-18 23:00
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
24
我要再搞1个就被你忽悠了
2006-10-18 23:00
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
25
请问

为什么我停在伪OEP DUMP
然后输伪OEP地址

抓取的是 “真”

但是程序无法正常运行?
2006-10-18 23:04
0
游客
登录 | 注册 方可回帖
返回
//