欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

易语言程序破解思路

程序员文章站 2022-07-10 09:52:12
首先要确认程序为易语言编写的程序,确认方法: 1、如果PEID查得是VC++ 6.0且入口OEP是3831 2、查找字符串有E的两个库(其中一个为krnln库) 3、有.eCode区段(...
首先要确认程序为易语言编写的程序,确认方法:
1、如果PEID查得是VC++ 6.0且入口OEP是3831
2、查找字符串有E的两个库(其中一个为krnln库)
3、有.eCode区段(不一定有)
确认为易语言编写的程序后,破解的方法有:
1.Ecode法(对于有Ecode区段的就用这种方法):
我们用OD加载目标程序 ,F9运行程序,再Alt+E打开模块窗口,找到krnln模块,点击右键,弹出对话框

易语言程序破解思路


点查看内存,找到ECODE段,在ECODE段F2下断,然后然后填入任意注册码点击注册
 
 
易语言程序破解思路
OD中断在按钮事件上
 
易语言程序破解思路
到这里后F8单步走,马上到达破解的核心处了。当然此时也可以查找字符串直接定位破解核心。
2.工具辅助法
启动E-Debug Events,打开目标程序,输入任意注册码点注册可以见到如下图(如果无法获取按钮事件请在E-Debug Events改变编译方式即可)
 
易语言程序破解思路
我们可以看到找到的按钮事件地址0040A0BD和Ecode法是相同的,到这里后F8单步走,马上到达破解的核心处了。当然此时也可以查找字符串直接定位破解核心。
 
 
 
 
3.特征码法(脚本法)
易语言的这种查找方法,同样适合有壳的程序,其他的就必须脱壳后再继续操作了.
OD载入后,就F9运行程序吧,当程序运行后,ALT+E打开模块窗口,
选中易语言的核心库krnln,双击进去
 
易语言程序破解思路
然后CTRL+B,查找FF 55 FC

易语言程序破解思路
查找到的这个CALL就是了,F2下断吧,现在输入必须的内容后,单击对应的按纽吧


易语言程序破解思路
看,断下了吧,下面就F7跟进吧,就来到按纽事件处了
同样,写个脚本,保存为文本文件,运行即可
gpa"GetProcessHeap","kernel32.dll"
cmp $RESULT,0
je err
bp $RESULT
run
run
run
bc $RESULT
rtu
find 10001000,#FF55FC5F5E895D??8945#
bp $RESULT
find eip,#FFE0#
cmp$RESULT,0
je err
bp $RESULT
run
bc $RESULT
sto
MSG "按纽事件查找完毕!"
ret
err:
MSG "脚本运行错误!请检查错误后再继续运行脚本!"
ret
 
 www.2cto.com
 
4.API断点法(对于程序有注册对话框的就用这种方法)
注册对话框API一般为MessageBoxA、MessageBoxW、MessageBoxExA、MessageBoxExW等,命令框输入BP MessageBoxExA中断如下:
 
易语言程序破解思路
堆栈框下拉看到返回程序领空地址,点击反汇编窗口,Ctrl+G,输入返回地址0040A292如下图:
 
易语言程序破解思路
右键点击,弹出对话框,选择超级字符串参考(此功能需要加载一插件),搜索如下图:
 
易语言程序破解思路
直接定位破解核心,分析即可。
5.查找固定字符串(\\.\physicaldrive0)法
OD加载程序,F9运行程序,然后Alt+E打开模块窗口,在krnln的模块双击进去,进去后在反汇编窗口搜索字符串 ,找到\\.\physicaldrive0 然后双击进去,在这一行下断,重新加载程序,F9,程序中断,然后F8单步走,要有点耐心,走到程序领空 就可以搜索字符串,直接定位破解核心了。


易语言程序破解思路