深度剖析易原体
易语言遇到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