【破解EXE】VC程序的破解及修改一例

问题:原程序在定时一分钟段内执行N次某过程,需修改程序,增加每分钟的执行次数。
分析:1、目的是修改定时间隔时长或者修改执行次数。
2、方法是通过修改应用程序config设置或者修改可执行文件资源信息、或者反编译程序修改其相关参数。

结论
1、查看程序文件,发现存在明显图标,基本确定属于VC开发的程序,通过SPY++查看程序窗口的类名和PEID查壳工具,确定为
VC++6.0开发

2、一般VC生成的程序无法进行反编译出C语言及更高级别的源代码。只能通过修改应用程序的方式进行参数修改
3、使用EXESCOPE工具,查找是否存在每分钟执行次数相关参数,未找到相关设置。

4、使用ULTRAEDIT编辑器打开程序,依次查看程序相关resource信息,发现以下信息,确认程序里肯定有相关参数设置,
查找softset.ini文件,未发现这样文件,说明以前版本的程序肯定用过softset.ini文件保存过设置。

5、程序目录新增softset.ini文件,并修改其中内容增加提交次数说明。测试后,发现程序并未加载这个文件,失败。

6、使用调试解密OllyDBG进行反汇编调试,并从注释、字符串信息里查看相关参数,发现如下汇编断点push 0A,即常量10,

修改汇编代码 PUSH 64即100,写入可执行文件,通过测试成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vc6.0 使用教程详解.doc,大小仅 284KB,但作为一个 vc6.0 的入门教程,本书就足够了。 内容预览: 你首先要打开VC6.0界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名.cpp), 步骤是:(先工程—后文件—编译—连接---运行) 1,建立一个工程,“文件”——“新建”,出现下面界面: 选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置, 点击“确定”,进入下一步,看到如下提示界面: 建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后: 显示你创建的工程的信息。 2,再在有一个的工程的条件下,我们再建立一个源文件; “文件”——“新建”(快捷键Ctri+N),出现: 建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后: 进入编辑区,在主界面编写代码:如下编写完之后呢: 可以按编译按钮 调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮 检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮 ,就可以运行了。 如果是您有代码如:cpp文件,或 .h 文件,想添加都VC6.0里来测试的话,可以这样做: 首先,要理解一下 文件扩展名为:cpp和.h 文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等; 文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码; 建立与运行说明:(以VC 6.0编译器为例,其他编译器类似) 首先,打开VC 6.0编译环境; 在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选Win32 Console Application(控制台应用程序) ,在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。在点击“确定”,就建立一个简单的工程了。 再点击左边的工程信息右下角的“FileView”选项;可以看到你新建的工程,再双击你新建的工程名 可以查看工程的信息。 在双击工程文件,在这里是 777.files,可以看到该工程的包含的文件 其中,Source Files 为包含所有工程的源文件 Header Files 为包含所有工程的头文件 在源文件选项“Source Files ”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为 .cpp的源文件。在头文件选项“ Header Files”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为 . h的头文件。添加完你所有的头文件和源文件之后,检查一下是否添加完毕,之后就可以编译了。 其中第一个按钮 为编译按钮,可以找出工程的错误信息,有错误修改,没错误就可以跳到连接 ,编译右边的按钮 ,即第三个按钮(多文件工程一定要连接,查看文件是否准确相连接) 当编译,连接都没有错误时,可以按运行按钮 ,即可以运行了。
在自己的工程中引入所有文件,在stdafx.h中对照本下载工具项目的stdafx.h,应该是要加入afxsock.h。 参考main.cpp。主要是调用DownloadHelper。先添加任务,然后设置onFinish(下载完成后的动作),最后start。 如果目录中已有该文件,程序会自动覆盖,不会出错。 默认下载端口是80,不支持其他端口。如果要这个功能,请修改Mydownload中的fnMyDownload,HttpDownLoadNonProxy加入nHostPort。 ###fnMyDownload说明: bool fnMyDownload( CString strUrl, CString strWriteFileName, unsigned long *& downloaded, unsigned long & totalSize, CString strProxy, int nProxyPort, int nThread ) strUrl: 需要下载的文件地址, 如:“http://10.20.1.6/musiconline/091029/daisy.mp3” strWriteFileName: 下载后文件的存放地址,如:“d:\\” downloaded: 指针引用,调用函数后会不断变化,实时反映已下载多少字节的数据 totalSize: 传递引用,表示所要下载文件的总长度,与downloaded配合可以分析各种下载信息 strProxy,nProxyPort 这两个为代理选项,有的话填上,如"192.168.1.89",8080 没有的话麻烦点填上"",0 。(呵呵,暂时没有去研究具体怎么使用) nThread: 用于下载开启的线程数,一般3,4个最佳。。太多反而降低速度,而且有些服务器不支持多连接。 例:fnMyDownload("http://10.20.1.6/musiconline/091029/daisy.mp3","d:\\",downloaded,totalSize,"",0,3) ###代码说明 Mydownload.cpp底端的fnMyDownload函数是下载器的关键函数。 其中在原作者的基础上,加了几句编码转换的代码。把网络的文件名和路径转化为UTF8,但这里可能会有问题,例如中文域名。有需要,请再作修改。 DownloadHelper是外围封装的类,用于列表管理,自动断点重连。 ChineseCode用于编码转换。 Thread是一个封装好的线程类,被DownloadHelper继承。类似于Java的Thread类。 ###Mydownload代码笔记: 从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。 ###开发测试环境: windows xp + Visual C++ 6.0 !!!!!!需要使用MFC环境!!!!!!!!!!!!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值