内嵌补丁的核心是 在没有代码处(程序只是为了填满内存)写上代码(一般是赋值)利用程序跳出再跳回去实现(写的时候与源程序保持一点距离)
优势:解决在程序上直接写代码后面代码被覆盖的情况

跳出来
修改+跳回去
OD调试技巧经验
1.判断跳转
不等于 跳转
等于 不跳转
2.有时间限制 在killTimer下断点
3.程序用switch语句判断输入是否正确
4.跳出switch语句

Resettoolbars Setting 意味着重新建立窗口,跳出循环
5.vc程序 初始是 push ebp
6.利用堆栈搜索破解

PS.
记录一个调试
利用堆栈找到dialog(弹窗)发现三次调用CALL
内嵌补丁 将循环次数写在 PE文件的数据区
利用nonawrite插件写汇编指令 跳出来再跳回去(注意:跳出来的命令修改后会覆盖下一句,写补丁时要加上这一句再跳回去)

记录一个调试
对话框分两种 模态(必须判断,想取消取消不了)和非模态(对话框可以切换)
利用exescope找到nag窗口的句柄(比如是103,16进制67) 在OD中搜索
push 0x67观察堆栈看函数从那个地址返回的()

dialogboxparam 模态函数
createdialogparam 非模态函数)
这两个函数都是从后往前执行(由上图),所以执行句柄是最后一步操作,这就可以从后往前找到弹窗函数
然后跳转到那个地址,找跳转和比较

记录一个调试
目的去掉结尾的nag窗口(注册窗口)
exescope找到窗口句柄,在OD中搜索push 0x64(16进制),这次你会发现很多push 0x64 全部下断点,调试找到最后nag窗口的那个push 0x64 ,找到最近的跳转和比较 发现API函数RegQueryValueA (获取一个项(注册表:windows为程序提供的数据库用来记录程序的注册,进程等信息)的设置值)对应函数不同参数,找到注册名和密码存放的位置,找到验证函数,修改输入值,达到破解。

记录一个调试
注册机(程序或模块)利用给定的算法得到注册码(flag)
有输入框 寻找API函数getdlgitemtextA或者GetWindowTextA
在API函数下断点找到算法程序
下断点的方法 在命令行里输入
bp getdlgitemtextA(如下图)

找到算法程序,通常来说是将输入分割分割成一个一个的字母转化成ascal码再运算
(寄存器ecx 循环计数器 遍历拆分的这几个字符)

记录一次调试
程序反调试 利用CreateToolhelp32Snapshot获取当前进程的快照,再结合Process32First获取第一个程序进程的名字利用lstrcmpia函数与“OLLYDBG.EXE”(某调试程序)对比,达到反调试。(单纯的对比名字好像很弱(笑哭~2333))

为了心中的美好而战

OD调试 内嵌补丁(一般调试加壳)相关推荐

  1. 小甲鱼 OllyDbg 教程系列 (十一) : inline patch ( 内嵌补丁 )

    小甲鱼 OllyDbg 视频教程:https://www.bilibili.com/video/av6889190?p=19 程序下载地址:https://pan.baidu.com/s/1u6SWg ...

  2. 内嵌补丁 与 洞穴代码分析案例

    示范案例:unpackme#1.aC.exe,学习过程参照<逆向工程核心原理> 如您发现了某些错误和不规范,请务必指正 内嵌补丁: 如名字所述,是指将补丁内嵌进程序中的一种打补丁的办法.与 ...

  3. jekyll静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML

    在谷歌搜索的功能速度(实验性)中推荐使用工具PageSpeed Insights查看我的网页访问速度情况:PageSpeed Insights 分数很低,只有33分. 优化建议的第一条是移除阻塞渲染的 ...

  4. 小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法

    小甲鱼 OD 教程:https://www.bilibili.com/video/av6889190?p=20 堆栈调用方法 程序运行后,直接断点到 004DC0D1 这个 位置,按 F8一直没反应, ...

  5. 微信小程序调试webview_微信小程序内嵌webview相关知识点整理

    前言 随着微信小程序的广泛应用,越来越多的商家选择将营销阵营选择迁移到了小程序中,但受其小程序体积限制的影响,不能够完全满足商户的要求,应运而生的web-view组件很好的解决的这一问题.一方面内嵌w ...

  6. linux kdb内核调试器,linux kdb 内核调试器

    许多读者可能奇怪为什么内核没有建立更多高级的调试特性在里面.答案, 非常简单, 是 Linus 不相信交互式的调试器. 他担心它们会导致不好的修改, 这些修改给问题打了补丁 而不是找到问题的真正原因. ...

  7. 13. OD-内嵌补丁,过期的软件DVD Menu Studio破解,switch函数,break等于KillTimer

    内嵌补丁指在程序文件中把补丁代码写入文件里面达到破解的目的. 查询KillTimer函数,意思是break的意思 eax不能等于3,等于4就会进入正确轨道 我们回溯cmp eax,3指令,回到跳转该指 ...

  8. Java swing 做一个传统Web项目的桌面程序启动器(内嵌浏览器)

    背景:公司有个老项目,web项目,但是使用者都想要一个桌面应用程序.实际上,是web程序的启动较为麻烦.这里每次都需要启动Tomcat和浏览器. 想法:重写一个项目太麻烦,想想成本,人间不值得.于是我 ...

  9. 【原创】脱UPX加壳的notepad.exe

    [文章标题]: 脱UPX加壳的notepad.exe [文章作者]: 微微虫[S.T.C][DCT] [作者邮箱]: ]nuxgod@163.com [作者主页]: http://wwcgodsoft ...

最新文章

  1. C++末尾匹配(C与C++解决)
  2. 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证
  3. mysql maria引擎_MySQL体系结构和存储引擎概述
  4. tp5怎么生成短链接_请问在tp5中怎样才能使用url函数?
  5. 塑云科技基于 KafKa+OTS+MaxCompute 完成物联网系统技术重构
  6. 从质疑到成为必选项,低代码技术发展及 2022 展望
  7. python分布爬虫_13天搞定Python分布爬虫(第七天)(Scrapy)
  8. NumPy中如何确定两个ndarray数组完全相同
  9. android自动修音,唱吧自动修音app下载-唱吧自动修音 安卓版v8.6.0-PC6安卓网
  10. 写一彩票程序,要求能随机产生并按照升序输出1-30之间的7个数,且其中任意两个数字不能重复
  11. rime android汉字,Rime输入法
  12. html多张图片合成一张,PS照片合成:多张照片合成一张
  13. [交流] 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
  14. Python编程-pypyodbc无驱动和无法打开注册表等错误的解决办法
  15. 常见文件头 文件幻数
  16. Windows的消息定义大全
  17. Java零散知识点XXXXXXXXX
  18. android联接无线路由器,安卓手机和无线路由器无线连接设置方法
  19. 微信开通检测软件的使用方法(入门教程)
  20. 数据库学习笔记04——关系数据库2

热门文章

  1. 芯片945P,945PL,945G的区别
  2. winen中文_Windows Server 2016 中英文版下载!
  3. VR全景作品中添加开场加载画面教程
  4. 学好英语网html首页制作,HTML+CSS+JavaScript项目8 “学好英语网”首页面制作_0527_连蕊.pptx...
  5. 家谱处理(30 分)
  6. STL/next_permutation()和prev_permutation()函数
  7. NS-Multimeter数字万用表程控软件
  8. ubuntu14.04 64 bit 安装网易云音乐
  9. 山东之所以落后的简要分析
  10. 伴读计划丨《我们时代的神经症人格》:我是真的爱自己的宠物吗?