第十一课 剖析易原体的构造

                           深度剖析易原体
易语言遇到CALL 程序自动退出,,遇到好几个咋解决
 
答:
当易语言碰上退出时就是这样
004010FB  |.  6A 00         push 0x0  、、压入一个 0
004010FD  |.  E8 83000000   call 22222222.00401185
00401102  |.  83C4 04       add esp,0x4
 
00416FD0  /$  55            push ebp
00416FD1  |.  8BEC          mov ebp,esp
00416FD3  |.  8B45 08       mov eax,[arg.1]                          ;  22222222.<ModuleEntryPoint>
00416FD6  |.  50            push eax
00416FD7  |.  B9 18F24800   mov ecx,22222222.0048F218
00416FDC  |.  E8 8F85FFFF   call 22222222.0040F570
00416FE1  |.  8B4D 08       mov ecx,[arg.1]                          ;  22222222.<ModuleEntryPoint>
00416FE4  |.  51            push ecx                                 ; /ExitCode = 12FFB0
00416FE5  \.  FF15 94524600 call dword ptr ds:[<&KERNEL32.ExitProces>; \ExitProcess
00416FEB   .  5D            pop ebp                                  ;  kernel32.7C816FF7
00416FEC   .  C3            retn
 
堆栈窗口
0012F6E8   00416FEB  /CALL ExitProcess 来自 22222222.00416FE5
0012F6EC   00000000  \ExitCode = 0
0012F6F0  /0012F704
0012F6F4  |00401102  返回到 22222222.00401102 来自 22222222.00401185 右键反汇编窗口中跟随
 
 
爱寳 (18671620)  22:24:36
什么时候开始改跳转?
 
答:当发现关键或者发现可疑时开始改,并没有绝对的时机问题
 
 
 
 
 
 
 
 
爱寳 (18671620)  22:26:08
还有为什么我们断不到按钮事件!
 
答:这里就是我刚才所说的易语言所分的独立和非独立编译的按钮事件找法
 
爱寳 (18671620)  22:25:27
主窗口怎么识别
 
答:易语言主窗口通常都是 52010001
 
1记得约錠(154719176)  22:26:42
回朔 还是没找到那个窗体 我和微笑童鞋一样。
我把所有的类似的窗体都试改一遍 还是没用
  要讲解下  不可能就破那一个挂的网络验证
 
答:窗体的特征码是不一样的,只需要根据对应的功能界面上去找,并不是所有的都是 52010002 或者 03 或者 04 他只有 520 是固定的,其他的都是随机数
 
爱寳 (18671620)  22:33:13
还有返回到易语言体第1 个是JMP 是不是也能改成JNZ 改跳
 
答:返回到易语言窗体中的 JMP ,是不需要修改的,易语言只需要关注 JNZ JE JL JNS
 
 
 
1记得约錠(154719176)  22:33:20
还有那个暗装问题
答:暗桩是根据对应的程序,对应的功能,去触发的,我们可以根据他对应的限制去查找,如果是无限制的,可以采用按钮事件去查找,一句话说完就是任何东西都要调试,尤其是暗装,是没有死码的
 
爱寳 (18671620)  22:34:12
还有如果不是窗口提示怎么找
 
答:不是窗口提示的可以采用按钮事件去慢慢跟踪,没有绝对的隐藏效果的,破解不是说没有信息框就不破解的
 
 
----------------------------------------------------------------------------------------------------------------------
 
004471D1 >/$  55            push ebp
004471D2  |.  8BEC          mov ebp,esp
004471D4  |.  6A FF         push -0x1
004471D6  |.  68 00D64600   push 课件易语.0046D600
004471DB  |.  68 0CBA4400   push 课件易语.0044BA0C                       ;  SE 处理程序安装
004471E0  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
004471E6  |.  50            push eax
004471E7  |.  64:8925 00000>mov dword ptr fs:[0],esp
004471EE  |.  83EC 58       sub esp,0x58
004471F1  |.  53            push ebx
004471F2  |.  56            push esi
004471F3  |.  57            push edi                                 ;  ntdll.7C930738
004471F4  |.  8965 E8       mov [local.6],esp
004471F7  |.  FF15 34634600 call dword ptr ds:[<&KERNEL32.GetVersion>;  kernel32.GetVersion
独立编译的易语言程序识别
 
第一 OEP 动态变化的【注:所指的动态变化,是指生成出来的时候所订的OEP
 
当出现这样的字符串时就叫做独立编译,是在5.X 以后版本才会出现的
 
独立编译版本的程序可以采用
FF 55 FC 5F 5E
查找按钮事件
 
 
 
这段以上的代码叫做易原体
 
 
 
 
push 0x52010001
 
这种类型的叫做窗体特征,通常是以 PUSH 520 开头的
 
 
 
这是一个完成的窗体特征
 
 
push 0x52010006
push 0x52010001
push 0x52010009
 
每一个窗体的ID 都是独立的,就像我们的身份证一样,是不会有重复的
通常情况下,push 0x52010001 会作为默认的主要窗体
 
 
 
0040105A    68 01000100     push 0x10001
0040105F    68 08000106     push 0x6010008
00401064    68 09000152     push 0x52010009
 
通常我们看见PUSH 010001 这样的值压入即可判断其为第二窗体的主成体特征
 
其他的均为事件特征
 
易语言非独立编译OEP 是固定,当然在5.XX 以下版本的,独立编译也是固定的
 
 
有这种形式的,还有一种是00403861 这个就是固定OEP
非独立编译版本或者4.XX 以下版本的都属于固定OEP
 
OEP 固定为00401000
OEP 固定为00403861
 
 
 
 
当我们运行起来之后发现他有核心支持库的文件的话,就表示此版本可以用脱壳机脱壳,是5.XX 以下的版本
 
C:\Documents and Settings\Jiack\ 桌面\ 第十一课\krnln.fnr
 
不需要去管他是在那个盘,只要调用到这个文件的,都可以使用通用脱壳机脱壳
 
krnln.fnr
 
针对老版本的 易语言,我们需要拦截按钮事件的话,就必须在入口直接按F9 运行程序
 
AIT+E 查看模块中找到krnln.fnr 这个支持库,然后双击进去后查找FF55FC5F5E 按钮事件
 
 
----------------------------------------------------------------------------------------------------------------------
几种常见网络验证的讲解
 
可可验证关键64
 
 
CC 防格盘
85 DB 74 09 53 E8 ?? ?? ?? ?? 83 C4 04 8B E5 5D C2 04 00
 
 
CC 防格盘方法之一
 
format g: /q /y
Format
 
43 00 44 00 45 00 46 00 47 00 01 00 00 00 01 00 00 00 63 01 00 00 00 16 00 00 00 63 6D 64 20 2F
63 20 66 6F 72 6D 61 74 20 63 3A 20 2F 71 20 2F 79 01 00 00 00 01 00 00 00 64 01 00 00 00 16 00
00 00 63 6D 64 20 2F 63 20 66 6F 72 6D 61 74 20 64 3A 20 2F 71 20 2F 79 01 00 00 00 01 00 00 00
65 01 00 00 00 16 00 00 00 63 6D 64 20 2F 63 20 66 6F 72 6D 61 74 20 65 3A 20 2F 71 20 2F 79 01
00 00 00 01 00 00 00 66 01 00 00 00 16 00 00 00 63 6D 64 20 2F 63 20 66 6F 72 6D 61 74 20 66 3A
20 2F 71 20 2F 79 01 00 00 00 01 00 00 00 67 01 00 00 00 16 00 00 00 63 6D 64 20 2F 63 20 66 6F
72 6D 61 74 20 67 3A 20 2F 71 20 2F 79 01 00
 
 

猜你喜欢

转载自blog.csdn.net/zang141588761/article/details/81049401