DIY易语言修改易语言皮肤为系统主题
今天研究了下怎样修改易语言主题为系统主题,大家都知道易语言是C写的所以主题是C的主题(表示虽然易语言能让编写出来的软件能符合系统主题但是易语言本来主题很难看.....)。
废话不多说,开始!
我先用一个易语言的软件测试。以下是软件的界面图片(未修改)
我们用以下的代码插入到软件的界面资源里。其实这串代码也可以用Resource_Tuner直接创建
[Asm] 纯文本查看 复制代码 [/align]
[align=left]<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Microsoft.Windows.MyCoolApp"
processorArchitecture="*"
version="5.3.0.0"
type="win32"/>
<description>Application description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="False"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
</application>
</compatibility>
</assembly>
[/align]
[align=left]
我们打开Resource_Tuner把软件载入到Resource_Tuner里(我用的是英文版)
我们在Resource_Tuner的资源树形框里右键点击“Add Resource”
然后点击“OK”这里会打开一个对话框我们一直点击“Next”
对话框关闭后就证明我们插入好了。保存
保存完毕后我们再打开软件看看。
已经成功修改了软件皮肤为系统主题了。
这样就可以开始修改易语言了。我们把易语言同样载入Resource_Tuner重复以上的步骤。
保存完毕后我们打开就会提示易语言被非法修改。
此时我们发现易语言已经成功的修改成了系统主题了。只要把这个信息框给消除不让他提示就可以了。
我们打开OllyDBG(我用的是吾爱最新OD)把易语言载入
载入后我们右键-中文搜索引擎-智能搜索
然后我们呢Ctrl+F搜索“非法修改”
OK,我们双击进入CPU窗口
我们找一个地址下断,下断后运行被断下。我们看下
[Asm] 纯文本查看 复制代码 [/align]
[align=left]00463439 52 push edx
0046343A FF50 20 call dword ptr ds:[eax+0x20] ; e2_-_副?0052D63A
0046343D . 85C0 test eax,eax ; e2_-_副?0056893C
0046343F . 75 0A jnz short e2_-_副?0046344B
00463441 . 68 68235A00 push e2_-_副?005A2368 ; 打开文件失败!
00463446 . E9 1C0A0000 jmp e2_-_副?00463E67
0046344B > E8 00000000 call e2_-_副?00463450
00463450 /$ 830424 06 add dword ptr ss:[esp],0x6
00463454 \. C3 retn
00463455 B2 db B2
00463456 . 8BCB mov ecx,ebx ; edx=ecx
00463458 . E8 73A0FFFF call e2_-_副?0045D4D0 ; 关键Call
0046345D . 85C0 test eax,eax ; eax=eax=0
0046345F . 75 0A jnz short e2_-_副?0046346B ; 关键跳,eax为1则跳。为0则不跳
00463461 . 68 38235A00 push e2_-_副?005A2338 ; 系统执行文件被非法修改,请检查病毒并重新安装!
00463466 . E9 FC090000 jmp e2_-_副?00463E67
0046346B > 68 34235A00 push e2_-_副?005A2334 ; 3d
[/align]
[align=left]
我们可以看到在0046345F就是关键跳转这个跳转是不是实现的,我们要实现这个跳转。
我们可以分析一下关键Call。
但是我不这样做,我直接吧jnz改为jz。看下我怎样修改
这样这个跳转就实现了。我们保存。
这样就结束了。
小弟第一次在吾爱发技术贴如果有什么不对的地方请各位吾爱大牛指教。
|