首页
社区
课程
招聘
[原创]易语言另类查找字符串破解思路
发表于: 2008-11-27 12:31 46483

[原创]易语言另类查找字符串破解思路

2008-11-27 12:31
46483

大家好 

我是柯睡 

今天为大家带来了我在看雪发布的第一篇破文, 没什么高技术含量

请高手忽见笑:-P

这个 CM 是  "飘渺之恋"MM   的作品 

http://bbs.pediy.com/showthread.php?t=76940

在此谢谢她为大家带来的作品 

好  废话不多说了

我们开始

程序crack.exe    

开始   当然是查壳        PEID 上场



入口是 3831  
 
程序语言是  Microsoft Visual C++ 6.0 [Overlay]

很像是易语言的~~

我们在看看EP区段



- -!

奇怪了
 
没有 .ecode 段

难道不是易语言的~~~~~ - -!

好了 我们 OD上场吧 

验证下是不是易语言写的 

OD直接运行让程序跑起来



然后Alt+E  打开  查看 可执行模块  

Executable modules
基址       大小       入口       名称       文件版本          路径
00400000   0001F000   00403831   crack                        C:\Downloads\reflector\Release\crack.exe
00AE0000   00029000   00AF33BF   safemon    4, 2, 0, 1005     C:\Program Files\360safe\safemon\safemon.dll
00BA0000   0000D000   00BA58A9   xplib                        C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\E_4\xplib.fne
10000000   0011C000   1009E351   krnln      1, 0, 0, 1        C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\E_4\krnln.fnr   
5ADC0000   00037000   5ADC1626   uxtheme    6.00.2900.2180 (  C:\WINDOWS\system32\uxtheme.dll
5D170000   0009A000   5D1734BA   COMCTL32   5.82 (xpsp.06082  C:\WINDOWS\system32\COMCTL32.dll
5EFE0000   00017000   5EFEEE78   OLEPRO32   5.1.2600.2180     C:\WINDOWS\system32\OLEPRO32.DLL
......................................................

这里

10000000   0011C000   1009E351   krnln      1, 0, 0, 1        C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\E_4\krnln.fnr
 
这个   krnln.fnr    是易语言的特有的库函数

可以看出来是易语言的 

我们试试 随便填写假吗 

注册名:柯睡

注册码:123456789

好了 我们点击注册 ,



............

没反应 - -!

我们搜索下  字符串 看看

超级字串参考
地址       反汇编                                    文本字串
0040118A   mov     dword ptr [ebp-4], 004071C0       Can't open file!
00401275   mov     dword ptr [ebp-4], 00407198       Can't retrieve the temporary directory!
0040128D   push    00407190                          E_%X
004012C3   push    0040718C                          \
00401317   mov     dword ptr [ebp-4], 00407174       Insufficient memory!
00401342   mov     dword ptr [ebp-4], 00407158       Failed to decompress data!
00401378   mov     dword ptr [esp], 0040714C         krnln.fnr
0040138F   push    00407140                          krnln.fne
00401421   mov     dword ptr [ebp-4], 00407120       Not found the kernel library!
......................................................
00404EA6   push    004065B0                          \n\n
00404ECE   push    00406588                          Microsoft Visual C++ Runtime Library
00405674   push    0040661C                          user32.dll
0040568B   push    00406610                          MessageBoxA
0040569C   push    00406600                          GetActiveWindow
004056A4   push    004065EC                          GetLastActivePopup

- -!   

上面没有什么有效的信息 

Ok  

这里,我们请出分析易语言的的强力助手  ECE  出马

直接分析文件

2008年11月27日9时58分58秒,错误:该文件中没有封装易格式数据!
2008年11月27日9时58分58秒,信息:有效的可执行文件。
2008年11月27日9时58分58秒,信息:正在分析,请稍后……
2008年11月27日9时58分55秒,信息:已打开需要分析的文件。

〇_〇#

什么 2008年11月27日9时30分38秒,错误:该文件中没有封装易格式数据!

我们点击 窗口数据分析 



汗  我用的是E-Code Explorer0.86版

难道不是易语言(我们已经确认是易语言了)

算了

只好OD重新工作了

OD载入   

然后Alt+E  打开  查看 内存

因为没有 .ecode 段  

那么 ecode法就不能用了 

好了 上面都是我们常规的方法

今天我告诉大家一个其他的方法 

好了 .开始  

Alt+E  打开  查看 内存

我们在.data区段上下 F2  在访问上设置中断

F9运行程序 

10028CCD    8B42 30         mov     eax, dword ptr [edx+30]  <<---- 程序停在这里
10028CD0    83E0 01         and     eax, 1
10028CD3    85C0            test    eax, eax
10028CD5    75 10           jnz     short 10028CE7
10028CD7    8B4D 08         mov     ecx, dword ptr [ebp+8]
10028CDA    51              push    ecx
10028CDB    8B4D F8         mov     ecx, dword ptr [ebp-8]
10028CDE    E8 1D010300     call    10058E00
10028CE3    FFE0            jmp     eax
10028CE5    EB 0E           jmp     short 10028CF5
10028CE7    8B55 08         mov     edx, dword ptr [ebp+8]
10028CEA    52              push    edx
10028CEB    8B4D F8         mov     ecx, dword ptr [ebp-8]
10028CEE    E8 0D010300     call    10058E00
10028CF3    FFD0            call    eax

好  我们 F8单步走 

10028CE3    FFE0            jmp     eax         <<---- 这里

走在这里时,F8单步    

00409AAC    FC              cld               ; (Initial CPU selection)    <<---- 程序停在这里
00409AAD    DBE3            finit
00409AAF    E8 F6FFFFFF     call    00409AAA
00409AB4    68 AB9A4000     push    00409AAB
00409AB9    B8 03000000     mov     eax, 3
00409ABE    E8 31000000     call    00409AF4
00409AC3    83C4 04         add     esp, 4
00409AC6    68 01000152     push    52010001
00409ACB    E8 1E000000     call    00409AEE
00409AD0    83C4 04         add     esp, 4
00409AD3    6A 00           push    0
00409AD5    E8 0E000000     call    00409AE8
00409ADA    E8 03000000     call    00409AE2
00409ADF    83C4 04         add     esp, 4
00409AE2  - FF25 6A974000   jmp     dword ptr [40976A]               ; krnln.100296A2
00409AE8  - FF25 6E974000   jmp     dword ptr [40976E]               ; krnln.1002960D
00409AEE  - FF25 72974000   jmp     dword ptr [409772]               ; krnln.10029637
00409AF4  - FF25 76974000   jmp     dword ptr [409776]               ; krnln.10028DA5

好了  现在我们的准备任务就可以完成了 

直接搜索 字符串了 

超级字串参考
地址       反汇编                                    文本字串
004099D4   push    0040910C                          飘渺恭喜你
004099EC   push    00409117                          这样也行?i服了you            <<---- 这里
00409AAC   cld                                       (Initial CPU selection)

O(∩_∩)O哈哈~

OK  我们双击 

004099EC   push    00409117                          这样也行?i服了you            <<---- 这里

就来到了 

004099B8   /74 09           je      short 004099C3
004099BA   |53              push    ebx
004099BB   |E8 3A010000     call    00409AFA
004099C0   |83C4 04         add     esp, 4
004099C3   \837D D4 00      cmp     dword ptr [ebp-2C], 0
004099C7    0F84 36000000   je      00409A03
004099CD    68 04000080     push    80000004
004099D2    6A 00           push    0
004099D4    68 0C914000     push    0040910C                         ; 飘渺恭喜你
004099D9    68 01030080     push    80000301
004099DE    6A 00           push    0
004099E0    68 00000000     push    0
004099E5    68 04000080     push    80000004
004099EA    6A 00           push    0
004099EC    68 17914000     push    00409117                         ; 这样也行?i服了you
004099F1    68 03000000     push    3
004099F6    BB 00030000     mov     ebx, 300
004099FB    E8 06010000     call    00409B06
00409A00    83C4 28         add     esp, 28
00409A03    8BE5            mov     esp, ebp
00409A05    5D              pop     ebp
00409A06    C3              retn
00409A07    55              push    ebp
00409A08    8BEC            mov     ebp, esp

这里 我可以看到

004099C7    0F84 36000000   je      00409A03  //这个JE  跳过了 我们的成功的地方  

这里不用说了吧 

我比较喜欢爆破 嘎嘎 

004099B6    85DB            test    ebx, ebx
004099B8    74 09           je      short 004099C3
004099BA    53              push    ebx
004099BB    E8 3A010000     call    00409AFA
004099C0    83C4 04         add     esp, 4
004099C3    837D D4 00      cmp     dword ptr [ebp-2C], 0
004099C7    90              nop
004099C8    90              nop
004099C9    90              nop
004099CA    90              nop
004099CB    90              nop
004099CC    90              nop
004099CD    68 04000080     push    80000004
004099D2    6A 00           push    0
004099D4    68 0C914000     push    0040910C                         ; 飘渺恭喜你
004099D9    68 01030080     push    80000301

直接 NOP掉 

OK  我们再运行下 看看 



好了  今天我们就到这里吧  

谢谢大家的关注

88

              


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

上传的附件:
  • 1.JPG (26.21kb,1713次下载)
  • 2.JPG (23.78kb,1713次下载)
  • 3.JPG (71.01kb,1717次下载)
  • 4.JPG (16.17kb,1711次下载)
  • 5.JPG (54.00kb,1714次下载)
  • 6.JPG (91.83kb,1717次下载)
收藏
免费 7
支持
分享
最新回复 (52)
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
附件随上

上传的附件:
2008-11-27 12:33
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
追个码也不难的```
woaini
-1068196721
其实是CM作者把 区段的名字改了`
2008-11-27 13:38
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该不是作者改的嘛,好像新版的易语言都是这样
2008-11-27 16:31
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
5
无论哪个版本的易语言,OD载入后直接Ctrl+B搜索“FCDBE3”,然后运行至此,就可以搜索字符串了
2008-11-27 18:17
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
似乎这个方法不行啊

不能找到
不不信自己可以试试
2008-11-27 23:37
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
猫哥骗人```````````
就算CTLR+S
然后如图也找不到````
因为不同个区段  死猫哥
忽悠人````
上传的附件:
2008-11-28 13:46
0
雪    币: 564
活跃值: (12)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
查找 FC DB E3是最快的方法,楼主截弯取直啊。
2008-11-28 14:14
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
怎么我查不到?````
2008-11-28 15:24
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
10
呵呵,小黑冰很活跃啊

你搜索不到是因为你对OD还不够熟悉,比如你直接搜不到的话可以Alt+M在内存窗口搜索
2008-11-28 19:30
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
的确是对OD不熟悉
非常谢谢这个方法
2008-11-28 23:48
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
内存直接搜索有时就不行 E语言很不规范的 经常对ucs编码有问题

还有lz这段可以看出lz对OD不熟悉

“好了 .开始  

Alt+E  打开  查看 内存

我们在.data区段上下 F2  在访问上设置中断”

Alt+M直接就好了
2008-11-29 10:12
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
13
请教下,搜索“FCDBE3”是什么原理?
FCDBE3是这个?
0040A47B    FC              cld
0040A47C    DBE3            finit
2008-12-1 00:16
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
我很早以前在实战中就发现这3个特征字节了,不知道原理,我将其理解为易语言的特征。
2008-12-1 01:08
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习中``不过还是看不懂!!
2008-12-1 05:32
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
16
好像我见到过的易语言程序,无论老版本还是新版本,几乎都会有这两个指令的,我也是理解为易语言的特征码或者说是以语言的“真OEP”
2008-12-1 08:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
额,我刚想了解E语言的破解方法。。。。
2008-12-1 08:20
0
雪    币: 262
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
准备发帖请教易语言字符串的搜索呢,还好搜索到这里了。。以后俺多看回复
2008-12-8 16:34
0
雪    币: 11155
活跃值: (3110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错,试了下。学习了!
2008-12-8 18:34
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
之前都没找到关键,今天又学习了
2008-12-8 21:26
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
想问一下楼上,这个追码下什么段哦,GetWindowTextA好像不太灵光
2008-12-9 20:13
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
22
这一版本的E下GetWindowTextA是非常简单的一种方法。

使用条件断点可以准确地断到关键点。

不过第一次断下后返回,还要慢走几步才到关键函数。所以推荐第二次断下后再ALT+F9。不妨一试。
2008-12-9 20:26
0
雪    币: 420
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
fcdbe3   高  学习了。
2009-2-25 16:37
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
受益了!!!!
2009-2-25 16:48
0
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
**这句.学习了.的确部分都有这个特征
2009-2-25 21:25
0
游客
登录 | 注册 方可回帖
返回
//