呵呵,没有深入研究过,只是做一个简单的示例,让大家一起讨论方便!
示例的程序与工程见附件!!!
原程序运行如图:
大家先结合一下源码看一下:
[codes=cpp]
#define IAWEN_TIMER_ID 0x101
HINSTANCE g_hInst;
INT_PTR CALLBACK MainPro(HWND,UINT,WPARAM,LPARAM);
char szTitle[]=”ufa2r9fWxLvKvsD9LS1pYXdlbigyMDA5LzA4LzIwKQ==”;//用Base64加密后的标题
标题是用Base64工具事先加密过的,用OD搜索到的也只能是加密后的结果:
第一种方法:[color=#FF0000]先分析加密方法,然后将自己的字符也加密一下,这样就可以直接替换了[/color]!
由于这里知道是Base64加密的,所以,如果我们需要修改成自己的标题,只需要将自己的用Base64加密一下,然后替换,如下图:
保存一份,运行一下看看:
第二种方法:就是直接在程序里打补丁了(SMC)
1\先分析程序在哪里设置的标题:
2\仔细分析一下,就知道了下面这句代码是关键
00401109 8D5424 04 lea edx,dword ptr ss:[esp+4]
esp+4就是指向解密后的字符串位置
指令执行后,则将解密后的字符串保存到了EDX,然后压入堆栈!
3\接下来,我们就需要在数据段找一个空白,输入自己的字符串,然后想办法让地址保存到EDX就OK了:
其他的,如果有想到再续吧!