开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2430|回复: 2
收起左侧

[源码分享] SDK写的区段更名工具(SectionFucker)

[复制链接]
结帖率:53% (9/17)
发表于 2013-3-23 16:56:00 | 显示全部楼层 |阅读模式   广东省深圳市
我想这些代码对初学SDK的同学一定有很大帮助,写文件用的是文件映射,这样便于大文件的操作。考虑到代码和z叔的有很大不同,还是放出来了……

这个是运行效果图,使用方法为填写好区段名把程序拽上去即可……

  • BOOL CALLBACK DialogProc(HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam)
  • {
  • char strPath[MAX_PATH] ={NULL};
  • switch(message)
  • {
  • case WM_INITDIALOG:
  •   SendMessage(hDlg,WM_SETICON,1,(LONG)LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_MAIN)));
  •   SetDlgItemText(hDlg,IDC_Info," Ready.");
  •   break;
  • case WM_DROPFILES:
  •   DragQueryFile((HDROP)wParam,0,strPath,MAX_PATH);
  •   DragFinish((HDROP)wParam);
  •   HANDLE hFile;
  •   hFile= CreateFile(strPath,GENERIC_READ|GENERIC_WRITE,
  •    0,0,OPEN_EXISTING,
  •   FILE_ATTRIBUTE_NORMAL,0);
  •   if (hFile == INVALID_HANDLE_VALUE)
  •   {
  •    MessageBox(NULL,"打开文件错误!","错误",MB_ICONERROR);
  •    return false;
  •   }
  •   HANDLE hFileMap;
  •   LPVOID lpFile;
  •   PIMAGE_DOS_HEADER pDH;
  •   PIMAGE_NT_HEADERS pNtH;
  •   pNtH=NULL;
  •   pDH=NULL;
  •   lpFile=hFileMap=NULL;
  •   hFileMap= CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,NULL);
  •   lpFile= MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,NULL,NULL,0x200);
  •   if (!lpFile)
  •   {
  •    return false;
  •   }
  •   pDH = (PIMAGE_DOS_HEADER)lpFile;
  •   if (pDH->e_magic!=IMAGE_DOS_SIGNATURE)
  •   {
  •    return false;
  •   }
  •   pNtH = (PIMAGE_NT_HEADERS32)((DWORD)pDH+pDH->e_lfanew);
  •   if (pNtH->Signature!=IMAGE_NT_SIGNATURE)
  •   {
  •    return false;
  •   }
  •   int iSection;
  •   iSection= pNtH->FileHeader.NumberOfSections;
  •   char SectionName[9];
  •   GetDlgItemText(hDlg,IDC_EDIT1,SectionName,8);
  •   PIMAGE_SECTION_HEADER pSH;
  •   pSH= IMAGE_FIRST_SECTION(pNtH);
  •   int i;
  •   for (i=0;i<iSection;i++)
  •   {
  •    memcpy(pSH,SectionName,8);
  •    pSH++;
  •   }
  •   UnmapViewOfFile(lpFile);
  •   CloseHandle(hFileMap);
  •   CloseHandle(hFile);
  •   SetDlgItemText(hDlg,IDC_Info," Job Done!");
  •   case WM_COMMAND:
  • //   itoa(wParam,strPath,10);
  • //   MessageBox(NULL,strPath,"",NULL);
  •   switch(LOWORD(wParam))
  •   {
  •   case IDExit:
  •   case WM_DESTROY:
  •    EndDialog(hDlg,0);
  •    return true;
  •   }
  • }
  • return false;
  • }



签到天数: 8 天

发表于 2023-9-22 12:24:15 | 显示全部楼层   湖北省武汉市
感谢分享
回复 支持 反对

使用道具 举报

签到天数: 6 天

发表于 2013-4-16 09:03:27 | 显示全部楼层   河南省驻马店市
来吧~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表