首页
社区
课程
招聘
[原创]简单变形壳 自校验 Antidebug
发表于: 2008-10-4 17:43 10287

[原创]简单变形壳 自校验 Antidebug

2008-10-4 17:43
10287

在国外的一个很好的网站上找到一款可以给任何exe文件加密码的小软件,界面清爽,功能强大,就下载来玩玩,没想到这还是一次坎坷但意味深长的经历呢o(∩_∩)o...

PEID查壳显示是UPX,顿时觉得没挑战性,用peid插件脱,未果;用OD手动载入脱,失败——有点意思,把这个过程分享一下,算是给大家扩展下思路吧。

新手练手,牛牛飘过

OD载入代码如下:

00468D90 >  60              pushad
00468D91    BE 00204400     mov     esi, 00442000
00468D96    8DBE 00F0FBFF   lea     edi, dword ptr [esi+FFFBF000]
00468D9C    C787 D0D40400 B>mov     dword ptr [edi+4D4D0], 1487B1B8
00468DA6    57              push    edi
00468DA7    83CD FF         or      ebp, FFFFFFFF
00468DAA    EB 0E           jmp     short 00468DBA
00468DAC    90              nop
00468F36    8D4424 80       lea     eax, dword ptr [esp-80]   ****停在这里
00468F3A    6A 00           push    0
00468F3C    39C4            cmp     esp, eax
00468F3E  ^ 75 FA           jnz     short 00468F3A
00468F40    83EC 80         sub     esp, -80
00468F43  ^ E9 2437FEFF     jmp     0044C66C
00468F48    60              pushad
00468F49    8F46 00         pop     dword ptr [esi]
00468F4C  ^ 70 8F           jo      short 00468EDD
00468F4E    46              inc     esi
00468F4F    00D0            add     al, dl
00468F51    E4 44           in      al, 44

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (17)
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
2
2008-10-4 17:45
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
用OD手动载入脱,失败?什么意思?能否解释一下......
2008-10-4 17:54
0
雪    币: 564
活跃值: (12)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
路过,学习中,自己遇到问题了,不知道怎么解决。哎,真是个大菜鸟。
2008-10-4 18:29
0
雪    币: 203
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错,很详细
2008-10-4 21:32
0
雪    币: 4
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习 菜鸟很喜欢~
2008-10-4 21:50
0
雪    币: 172
活跃值: (172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我帮助穿一个直接可以使用的,哈哈。
上传的附件:
2009-6-14 20:29
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习 菜鸟很喜欢~
2009-6-15 16:43
0
雪    币: 264
活跃值: (11)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
学习一些小技巧..这个工具强度一般 拿来看看还可以..
2009-6-16 00:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
菜鸟什么
2009-6-16 01:25
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习了 ,谢谢 :)
2009-6-17 13:50
0
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
运行之后弹个错误框框,能对程序加密,但解密之后的程序运行不了
2009-6-17 13:59
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
很详细,受教了
2009-6-17 20:17
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
强大的-键
2009-6-17 20:47
0
雪    币: 187
活跃值: (205)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
下来学习一下
2009-6-19 15:08
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习了,自校验的确很有意思,我大多数都是搞不定的,希望你的破文能给我一些启发!
2009-6-22 18:11
0
雪    币: 126
活跃值: (37)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
17
这个程序用开两个OD对比的方法比较简单,

cmp eax, 493E0  eax保存的是可执行文件的大小,在我这脱壳后的是444928B,查看下文件的属性即可看到。程序的意思可能是如果文件的大小超过了 493E0H(十进制300000B)就断定程序被修改了。493E0是怎么来的不清楚,程序压缩后的实际大小是167424,那么493E0H可能是未压缩前的一个大小吧。

它用FindFirstFileA来判断文件是否存在,
参数 类型及说明
  lpFileName String,欲搜索的文件名。可包含通配符,并可包含一个路径或相对路径名
  lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。该结构可用于后续的搜索
由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件
HANDLE FindFirstFile(
  LPCTSTR lpFileName, // file name
  LPWIN32_FIND_DATA lpFindFileData // data buffer
  );
返回值
  如果调用成功返回一个非0值
  调用失败 返回为0 可调用GetLastError来获取错误信息

我推测它是用lpFindFileData指向的结构体来取得文件的大小,不过并不确定,API不甚会用呢。
typedef struct _WIN32_FIND_DATA {  
DWORD dwFileAttributes; //文件属性
FILETIME ftCreationTime; // 文件创建时间  
FILETIME ftLastAccessTime; // 文件最后一次访问时间 
FILETIME ftLastWriteTime; // 文件最后一次修改时间  
DWORD nFileSizeHigh; // 文件长度高32位 
DWORD nFileSizeLow; // 文件长度低32位  
DWORD dwReserved0; // 系统保留  
DWORD dwReserved1; // 系统保留  
TCHAR cFileName[ MAX_PATH ]; // 长文件名  
TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;   

00444D23    E8 AC2EFCFF     call UNPACK.00407BD4
00444D28    8B9D ACFEFFFF   mov ebx,dword ptr ss:[ebp-154]                  ; 这里赋值
00444D2E    8D85 A8FEFFFF   lea eax,dword ptr ss:[ebp-158]

按小键盘减号“-”键,直到回到程序领空的方法以前还真没用过,不过真的很有用,学习了。
2009-12-1 21:15
0
雪    币: 258
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
去除了自校验,调试器检测后,破解未注册限制密码长度为1,点击保护后,怎么没反应啊?
上传的附件:
2010-6-24 14:24
0
游客
登录 | 注册 方可回帖
返回