首页
社区
课程
招聘
[原创]我利用业余时间写了个OD(CpuDbg 全栈调试器)
2023-1-22 14:48 22273

[原创]我利用业余时间写了个OD(CpuDbg 全栈调试器)

2023-1-22 14:48
22273

                   CpuDbg x96全栈调试器


    首先祝各位2023兔年技术兔飞猛进事业兔步青云.


介绍 CpuDbg x96 是一款运行在win系统下的全栈调试器基于 "蒜父光刃开源的调试器的基础上研发出来的.  网址开源调试器源码 by 光刃  其中大部分UI和功能是参考的ollydbg(以下简称od1.x) 还有一部分参考了 0d2.x  odx64  x64dbg  Yzdbg  Mdebug  Windbg  Nanomite (篇幅关系不一一列举,具体的参考调试器手册国内外优秀的开源闭源调试器.在此一并表示感谢.


名称CpuDbg之前起过许多名字最初第一个名字是叫 OllyDbg++ 后来改成 OllyDbg x64 .再后来 Oleh Yuschuk 先生发布x64版本OD,又改成 AsmDbg. 直到最近又改成了CpuDbg.


叫法x96并没有这样的叫法之前在群里面看到有人这样叫 x96dbg, 并解释说是 x32dbg + x64dbg 总称为 x96. 本文章中的 x96 均表示 CpuDbg x64, 说明能同时调试32位和64位程序. (x64dbg并不能同时调试,而是需要两个不同的调试器来实现.CpuDbg x96是支持调试32位的程序,同时支持分析64位 wow64.dll 和 wow64win.dll, 期间无须手动切换模式,全自动切换模式)


开发CpuDbg x96 调试器,可以说几乎没有逆向别的调试器,大部分都是自己实现.因为本人是做逆向的,平时很少做开发.(代码量很少就想借此机会多写写代码开发调试器期间,有不少写的不满意的,不如意的,性能不如od1.x,我都会重写.直到写到满意为止逆向od1.x的也有,但很少.印象最深的是 菜单栏 -> 窗口 -> 水平平铺 和 垂直平铺还有一个层叠,层叠还好.多窗口也没有什么太大的变化重点是 水平平铺 和 垂直平铺这两个功能我全部自己用算法实现当时写的时候只开了两个窗口测试的时候,一切都正常后来测试无意多点开了几个窗口.又点了一下od1.x的水平窗口发现窗口位置又发生变化了后来才知道随着窗口数不一样,窗口摆放的位置也不一样感觉这样真没法玩只能逆od1.x逆了才发现,原来 水平平铺,只要给MDI发一个消息就行了.你说尴尬不?




: CpuDbg 功能介绍:


  CpuDbg无论功能上还是UI上都和od1.x基本上差不太多除了多了64位程序的支持外我在介绍些其它不一样的小细节至于怎样使用,这里就不多做介绍了因为和od1.x差不多. (如果有需要等抽空,我会出个html格式的帮助文档. CpuDbg的菜单栏help下能打开帮助文档.目前帮助文档还没有写.)


1). API显示


  API提示CPU主窗口中的反汇编窗口如果是API段首的话, od1.x是在地址后面会显示API名称如下图:



  od1.x必须将hex dump那跟线拖到很后面才能完整的显示API函数名称. (如果函数名很长,就得拖很远才能看到完整的函数名.)我一般使用od1.x的时候,都喜欢备注打上函数名称这样1来节省视图空间,二来可以直观的看到函数的名称.(但不同的工程每次都要手动打备注十分的麻烦.)

  CpuDbg则直接是紫色的备注形式显示在备注栏上如下图:



紫色的函数名优先级非常低如果在API段首手动加上注释的话默认会覆盖紫色的API名称后期考虑增加一条线专门用来显示 标签和API, 这样就能和注释错开显示了.


2). ALSR修改保存


  Od1.x win7及以上开启ALSR的系统调试部分EXE的基址是随机化的每次手动修改ALSR十分麻烦. CpuDbg则可以直接打开模块窗口(ALT+E) ALSR(地址空间布局随机化右键修改并保存这时在打开保存后的文件基址就是固定不变的了缺省情况下是0x00400000(ImageBase) .


3). Ctrl+G GoTo窗口显示API信息


  Od1.x Goto窗口是没有任何提示信息的(不含插件功能). 如下图:



CpuDbg会根据输入提示相关的函数信息甚至是参数信息(需要双击显示的函数显示参数).如图:



  goto中的api及参数数据采集可以写程序从SDK中提取但太麻烦了这里是直接使用 api monitor xml.(感谢作者节省了不少时间.


4)文件系统模板解析


  Od1.x 有一个PE Header功能平时用的也不多,但遇到ALSR 想固定基址时为了省事就会用到但使用起来不是很方便如图




  其中大段的 DB 00 数据看着着实不方便这里特意在原基础上修改了一下同时支持 PE ELF 等文件格式解析可以直接双击展开点击定位这里为了偷懒没有自绘用的是现成的treeview控件实现的如果没记错的话这个是整个调试器项目目前为止唯一使用控件的地方 :) 效果如下图: (左边的背景色好像还没有修改,下个版本一并改了.) 如图:



5)模块劫持直接生成C源码


  Od1.x 有的时候想对某程序写补丁又懒得写exe远程注入就可以用HiJackDll功能打开模块窗口(Alt+E) 想对哪个模块做劫持就对其点右键单击 [Dll to hijack code] 或者按热键 Ctrl+3. 如图:




  然后会弹个文件保存对话框随便选中一个目录,  点打开就可以直接生成相应的劫持源码的 7z压缩包格式 如图:




  为防止杀软误删默认加了一个密码.

解压出来可以发现生成出来的是 vc6.0 工程的源码(之所以生成最低版本的是方便使用不同版本的M$ IDE的用户直接编译. M$的产品都是向下兼容的非常好.) 如图



源码打开是可以直接编译的如图:



目前只支持32位的,64位的劫持我还未写.

这里需要注意的是(不是所有的模块都支持劫持的这个需要大家自己测试了.)


6)拖拽附加调试和窗口功能.


  Od1.x 自身是没有拖拽附加调试这个功能的这个功能是依赖插件,或者反编译增加上去实现的还有一个插件名叫 [WindowJuggler plugin v0.06 BETA] 是我平时使用率挺高的一款插件这个插件功能非常简单运行后,插件会注册一个全局加速键. Shift. 然后将鼠标移到指定窗口内按一下Shift窗口的句柄 ID 类名 等就会显示在插件上同时还有修改标题 单击 隐藏 禁用 等按钮功能.  如下图:



  平时调试的时候,遇到灰色按钮,我都会使用此插件遇到找不到进程的广告,也会使用这插件,找广告还需要结合 pchunter(前身xuetr) 来定位广告进程的路径因为这个插件不能显示窗口对应进程的路径使用起来还是有些麻烦的于是将拖拽附加 以及 WindowJuggler 插件功能,结合起来加到CpuDbg 之中结合后的效果图,如下:



这个界面,是拖动菜单栏上的 拖拽图标出现的如下图:



7)异常转储


  但凡是有一定规模的软件就难免会有BUG, 开发测试期间,经常会遇到莫名其妙的BUG, 特别是脱离IDE,直接运行遇到BUG,一闪而过,进程就结束了让定位BUG,十分不便增加这个异常转储,能让定位BUG,更方便效果图如下:



8)同时调试3264程序


  相信大家都知道x64dbg可以"同时"调试3264位程序但其是通过一个进程来控制实现的如果打开了 64位的 x64dbg 想再调试32位的程序就只能重新打开32位的x64dbg来调试调试起来十分麻烦使用的时候,只要打开菜单栏的选项点击添加到右键菜单弹出如下界面



  再点击添加到右键菜单.即可右键调试3264位程序了(前提是运行的是 CpuDbg x96, 如果是CpuDbg x32 只能调试32位程序.)


9)窗口


  在调试分析带GUI的程序时调试器的窗口功能也是很重要的一个功能当看到MDebug(后面简称(M) 的窗口功能时眼前一亮因为第一眼以为M把窗口RC资源格式导出来了实际上是看错了如下图:



  因为一般的调试器的窗口都是横坐标展示数据, M 是纵坐标展示一眼看过去,真有点像 VC中的RC资源看清后发现其实和od1.x也差不多的就是多了个位置和大小至于od1.x的 Style 和 ExtStyle.  od1.x也是有显示相关宏因为默认显示宽度问题被隐藏起来了,只要用鼠标往右边拉一点就能看到相关组合宏如下图



  两个一对比,就能发现 的显示方式看着很舒服, od1.x的显示方式,看着非常累,非常麻烦

大家有的时候写程序,会想使用另一个程序的GUI资源自己一个个画实在是太麻烦了如果是写一个子窗口比较多如计算器这样的小程序即使是用 mfc delphi 之类的快速拖拽GUI, 也是要花费不少时间因此我在窗口功能中,新增了一个RC资源一健生成功能.  只要是 mfc win32 之类的标准窗口都可以使用一键生成RC资源. (自绘以及三方UI库除外.) 生成的RC资源,是可以直接加到MSIDE中使用的其它的IDE未测试效果如下图:



除此之外还增加了一键展示UI. 看上去就有点像是资源修改工具了 :)


10).  锁定架构模式


  yzdbg调试器有一个挺便利的功能,  就是 锁定 x86_32 模式,和 锁定 x86_64 模式如下图:


        


  当在64位系统上调试32位程序的时候进程里会有三个比较特殊的64位模块三个模块分别是:  ntdll.dll  wow64.dll  wow64win.dll  如果是一般的调试器你可能就没有办法动态分析了.  因为当前进程是32位的. Yzdbg 的锁定模式功能,就解决了这个问题


  这个锁定模式功能除了yzdbg 还有ida 和 windbg也同样有此功能.

Ida 通过 选项 -> 分析 中可以设置如下图:


   



  Windbg 输入 .load wow64exts  !wow64exts.sw 就可以切换模式如果当前是 x86 32位模式,输入刚刚的命令后就会切到 64 位模式.  想切回32位模式再输入一次 !wow64exts.sw  命令就能切换了效果如下图:


   

32位模式的!



64位模式!


  我知道的公开的调试器中只有这三款支持模式切换但都不支持架构切换!



  这么实用的功能肯定要将其加入到 CpuDbg 如下图:

                    


  目前只加入了 锁定 x86 和 arm 两个架构未来还会加入 mips powerpc等构架下模式锁定.有了这个功能哪怕是在x86下执行armshellcode 也可以用切换架构模式的方法轻松分析它们了 :)


11).  多语言热切换


缺省情况下或第一次使用调试器,默认是英文的通过 菜单栏 -> Options -> Language 可以设置指定的语言如下图:

点击后立即切换无须重启调试器,就可以做到热切换语言目前就四种语言其中日本语只写了一点中 台 英 是完整的大家可以自己添加熟悉的语言配置文件.


多语言目录是在: Config\Language , xml格式的要使用的时候,直接复制一份 中文的 xml 然后修改相应的值即可.





  

  以上介绍的全部是Windows下的新增功能当然新增的内容也不止于此因为篇幅关系,就不一一介绍了具体的新增功能细节,可以等手册写完后,通过帮助文档获知新功能.

  

  Od1.x上原有的功能还有很多未写

  有些功能感觉没啥用,至少在20年后的现在来看,是没有啥用但又不舍得去掉想留个od完整的样子.

  有些功能是实现太过复杂,还未写或只写了一部分还未写的功能我都有留一个接口有的可能是 lbuttondown 接口 有的可能是 keydown 热键接口如下图:



正如上图显示的一样看到此提示说明功能还没有写本来我是想等全部写完后再发布的但我担心再拖下去这个调试器项目就真黄了这个项目本人也写了挺长时间了,中间有好几次都要放弃...




移动端和芯片调试支持



  Win下的调试支持我是做为调试器项目中的支线项目重头还是放在移动端和芯片的支持上毕竟 移动和IOT 现在都很火Windows 已经渐渐走下坡路了我也很久没有接触win逆向了虽然Windows调试做为支线任务但前期还是会先把windows 下的基本调试功能完善待所有功能完善后,再在Win的基础上开一个分支,做为主线项目

  下一个项目不出意外的话应该会是先搞安卓调试(这里说的调试不仅仅是指仿真还有类似IDA那样远程调试至于技术实现方案,我还没有想好.最终哪个性能好,延迟低,会采用哪种方案.如果哪位大佬有成熟的方案推荐,可以跟贴留言或私信我.), 再然后是苹果调试x86 16调试芯片部分应该是会放在最后当然也可能同时进行主要还是看自己时间安排.PCB画板我不熟,可能还得恶补一下.



  现在的版本已经支持ARM的软件仿真支持对于一般的 脱壳 去混淆 去虚拟化 等应该是会有不少帮助的.  ARM仿真应该是等Win下的基本功能写完再加入的但我已经迫不及待想看看用CpuDbg x96仿真arm效果了截止到现在,我甚至连 [硬件断点] [线程窗口] [句柄窗口,调试器常用窗口都没有开始写. -_-!!!  (本文不是一次性写完的CpuDbg x96更新一点功能文章也随之更新的所以您看到这篇文章的这段话,也可能是几年前写的了...)



  看到网上有不少仿真使用 unicorn angr unidbg qiling qemu unidbg 但大多都是基于python实现的,个别用C/C++,也都是控制台的如果是单步时想观察和修改 寄存器 堆栈 内存 符号 等信息时十分不便如果有一款带界面的ARM仿真能搜索符号,又能搜索导出函数和字符串.那应该是一件很cool的事效果如下图




  (注意现在说的是软件仿真和上面的切换模式是两码事切换模式可以在调试x86程序的时候,动态切换到 arm 架构.)


  目前的ARM汇编语法高亮还没有写在论坛里看到有一位网友写的高亮感觉挺不错的如下图




  语法高亮部分后期写的时候应该会参考这位网友的高亮着色不过他的背景是黑色的可能不太适用于CpuDbg中 : ( 



  关于硬件调试之前调试器我用过 keil 和 J.MasterI(下简称 J. ,  J. 是我早些年接触的第一个硬件仿真器商业产品).  Keil 是类似VS一样是一款IDE, 调试是需要源码支持的就不说了而 J. 是可以无源码仿真的在当时我刚接触 J. 真觉得是神器他是怎么实现仿真的呢?  工作原理是什么为什么晶振设置错了就不能仿真一连串的问题的同时又一直感慨这是一个神器然而在真正使用的时候又想吐糟,  真是太难用了界面很糙 排版难受这些都可以理解但断点支持太不友好了. (那时我就萌发了自己开发一款硬件调试器的想法)使用的时候我是边吐糟边夸 J. 真是个神器下图是 J.



     



(注意现在说的是硬件仿真和上面的软件仿真又是两码事软仿受边界器件的影响只适用于仿真部分函数等硬仿就相当于开放所有调试功能可以完整的分析整个固件程序.)



  硬件仿真接口用的最多的就是 jtag 和 swd. (张银奎老师的硬件调试器gdkinteldci实现的,也是基于jtag)一般情况 直接使用 jtag  jlink之类的就可以了但我觉得做事得有始有终只有软件没有配套的硬件不够卷软件调试器都写了还差硬件调试器吗


  在写调试器的时候,我经常在想一个问题既然是全栈调试器你总会遇到不支持的架构本调试器使用了逆向界的四大神器其中汇编使用的是keystone 反汇编使用的是capstone 仿真使用的是unicorn. (感谢这些作者)这些库再强大也总会遇到不支持的架构如果遇到不支持的架构又想支持它该如何做呢gayhub通知几位作者,坐等更新吗不现实我在想如果把需要用到的CPU移植到硬件上来实现以上的功能思路不知道是否可行可能会有很多瓶颈但我想这应该也算是一个野路子吧.(如果这方面你有什么好思路欢迎跟贴留言.或者私信我.) 我的初衷很简单调试器要么不写要写就一定要写好功能写全

  

  硬件部分基于x. 




张银奎老师的gdk做成一个小方盒子,我觉得挺好看的,但太大了,我觉得不方便我到时候会做成类似 DSLogic 大小的黑匣子如下图



  我个人挺喜欢 DSLogic 的这个黑匣子外观非常好看手感也非常舒服做成盒子的话,肯定少不了屏幕后期会加上一个彩色墨水屏嵌入在盒子的中间这种屏幕基本不用电只有写入东西的时候,用一次很低的电量写入之后断电也能一直显示的. (断电至少能显示几年)下图就是断电显示的效果:



  加上屏幕后可以在调试器上显示一些今日摘要二维码联系方式名片 之类的提示在屏幕上




  像CpuDbg x96这样的软硬件全栈调试器,你会喜欢吗



FAQ:


※. 调试器收费吗?

   本调试器免费,不收费!

   (如果您觉得好用,可以打赏,支持一下作者

   点我打赏  打赏名单

※. od1.x 和 cpudbg 有什么区别?

   od 1.x  是外国友人开发 官网http://www.ollydbg.de

   CpuDbg是国人开发     官网http://www.ollydbg.com

   两者没有本质区别 都是调试器 前者只支持x86 32bit动态调试 后者支持平台更全些

※. 调试器会长期更新吗?

   长年更新...

   业余时间更新忙时可能3-5个月一更新闲时,可能几天一更.

   如果是反馈能稳定复现的bug, 一般都会第一时间更新 :)

※. 怎样获取论坛邀请码?

   论坛未正式启用前,不开放注册,目前只能通过反馈bug来获取邀请码.

※. 有交流群 微信群或联系邮箱吗?

   官网上 [关于 -> 联系中有联系方式.

※. 项目会开源吗?

   调试器项目现在只是一个雏形,离心目中的调试器还很遥远.(程序框架完善前,没有开源打算)

※. 现在调试器那么多了,为什么还要写?而且还是免费的?

   也许是情怀???  (┳_┳)..







  CpuDbg调试器UI上虽然和od1.x差不多但功能确增加了很多由于篇幅关系不可能一一介绍所有功能为了方便新手快速入门我会利用业余时间再录制几套系列视频教程本来是打算边开发调试器,边录制教程的但考虑到在版本更新的过程中已录制的UI和功能,后期可能会更改又加上调试器的名称可能还存在争议后期也有可能更名所以就只能等功能写的差不多了再开始录制.

  教程录好后会放B, B站上面本人已经录制了一些调试器开发历程的视频还有一些IOT逆向的视频和安卓脱壳的视频有兴趣的朋友可以去关注一波 :)

  




  以后录制的调试器教程应该会分为以下几个系列


  CpuDbg x96逆向教程之 Windows 

  CpuDbg x96逆向教程之 安卓 篇

  CpuDbg x96逆向教程之 苹果 篇

  CpuDbg x96逆向教程之 硬件 篇

  .....等等

  

  教程内容不会设计到调试器的开发, (讲开发太枯燥,听的也很无趣.) 课程内容会尽量由浅入深方便新手理解课程时长我会尽量控制在每一课10分钟左右因为个人认为时间一长讲的东西就容易跑题质量就跟不上精华都是浓缩的

  课程除了介绍调试器基本功能之外还会介绍基本逆向知识涉及的内容应该会非常广也有实践和课后练习实践部分讲解也会涉及到虚拟机还原之类的.(具体的,等列出大纲,有兴趣的朋友可以看看.)


  


  Od1.x是我很喜欢的一款调试器奈何一直不支持x64. 等了几年直到 201425, od官网放了一个重磅消息说正在写x64. 真是很让人期待啊




  然而期待过后就是失望这个消息放出之后就再无消息了, (偶而能在网上看到有 OllyDbg x64的贴子也都是diy版的意思是 能在64位上运行而不是调试64... )

  等了三年又三年也没等来64od!确等来了 x64dbg. 但由于习惯了od,  x64dbg怎么用都不习惯, (这个主要还是因人而异,在写调试器之前我就特意问了几个朋友大部分都还是习惯od但也有更喜欢x64dbg.) 还有很多的BUG. 于是我决定利用业余时间自己写一个od. 当时也担心这个项目最终会烂尾就安慰自己能写多少算多少哪怕几个月写一行代码离调试器完成就更进一步.


  CpuDbg 是我业余时间写的从时间上来算断断续续写了差不多有三四年了记得是新冠疫情爆发时启动的这个项目. CpuDbg开发并没有任何技术含量及难度只要熟悉debug api和一些win32开发基础就能开发其它都是照着od1.x写功能主要就是绘制UI有些麻烦期间有几次都想放弃了印象中最长时间有近一年没有更新过一行代码.时间长到我都忘了这个项目的存在后来还是朋友来问我调试器进度时才想起还有调试器这个项目...


  CpuDbg UI部分完全是我自己绘制没有逆过od1.x一行代码包括工具条上图标的间距都是把图片放大到最大,用像素点来计算他们的间距如下图




  期间UI也重写了n个版本最初写的要么太卡要么GDI泄露.(记得论坛里有位网友写的 Z0BPcTools GDI泄露就很严重. ) 等等... 直到现在的版本使用上感觉和od1.x还是有不少差距未来还是要再不断的完善


  当初写UI的时候,朋友劝我直接用x64dbgUI, 别浪费时间造轮子了 (情怀嘛就得充满仪式感!) 可是我实在是接受不了qt, qt又可以跨平台真的让人很难取舍后来我有想过用WEB实现UI, 这样就能跨平台了由于我对WEB不熟悉担心写出来的UI不能1:1的像OD(我是OD,odUI差距大我接受不了), 还有就是担心WEB的性能跟不上特别是trace的时候如果有卡顿现象的话就真的会影响使用后来有一个熟悉WEB的朋友告诉我,可以用WEB,不会影响性能. (奈何朋友告诉我的时候, GDI版的UI已经画的差不多了不打算再重新画一个WEB版的ODUI.)


  相信每一个刚入门或已入门的研究人员都希望拥有一款属于自己的调试器为此diy大改调试器特别是修改显示的文字图标 之类的很容易修改出错. CpuDbg为了方便大家diy, 特意将能落地的资源,全部未加密落地了包括 中英文语言包 图标 图片 配置 等等


 

  写到这要感慨一下od1.x的作者是真牛!!!

虽然调试器整个开发流程,没有任何技术含量但其复杂度是难以想像的. UI就是花点时间,这些就抛开不说了就插件接口函数文档化加上未文档化的就上百个函数还有插件接口文档调试器帮助文档密密麻麻的.甚是可怕.(当初写调试器的时候,我是满满的信心决定不管多复杂都得实现插件接口要兼容 od1.x且一定要兼容当我看到上百个函数很多函数还是相互嵌套调用我果断放弃了 Orz 结果导致现在插件接口写的不伦不类的四不像... )



以下是od1.x的文档大小:


插件接口文档   187 KB (192,046 字节)

调试器帮助文档 288 KB (295,796 字节)


  看完作者写的插件接口我就觉得这个作者太可怕了.




  最最最重要的是那时候可不像现在有那么多的同类软件和资料参考唯独也就只能参考 debug和 softice 之类的了而且有很多优秀的功能都是作者自己原创的比如 



dump

source debug

sfx 

trace 

symbols 

inspect 

Import library 

arguments 

animate into

animate over

Set condition

execute till return 

Execute till user code

analysis

...等等




(这里要说明一下这些技术细节或最终原理肯定都是出自M$这里说的作者原创是指能想到这些功能并将这些功能集中在调试器上并且实现出来.) 




  这些功能放到20年后的现在来看每一个功能都是调试器的标配功能你要想想 20年前这里每一个功能都是没有资料或者资料匮乏再想想20年前,各位应该都还在看 <小龙人> <白眉大侠> <日月神剑> <家有仙妻之类的电视吧 : ) 那时候网络还都是拨号上网居多, ADSL还未普及ADSL普及了, OD作者在写调试器,你们还在网吧3389互联星空new用户刷钻. -_-#


  这些总总让我觉得这位OD作者真的是太过强大了.  Orz




  本来调试器是打算叫OllyDbg x64(那时候 od还没有发布 64 前几天od突然发布了 64 位版本了即然作者发布了,那我现在写的这个也没有必要再叫这个名字了就决定换成 AsmDbg(只是待定的,回头可能还会换名字). 

  



  这里我还要吐槽一下阿里的企业邮箱期间我给 Oleh Yuschuk 先生去了封邮件之前听朋友说od作者从不回邮件的所以发了邮件后我也没怎么关注邮件的事因为我平时休息时间短,中间被吵醒就很难入睡,所以我睡前喜欢调飞行模式.我给 od 作者发了邮件之后就开飞行模式休息了直到过了好几天我打开阿里邮箱才发现, od 作者在收到我的邮件后就给我回邮件了只是阿里的企业邮箱并没有通知微信等其它APP你开飞行模式,第二天关飞行模式也是能正常接收消息的. -_-#




  感谢这位德国作者 Oleh Yuschuk 先生为我开发调试器提了不少帮助和建议!

  感谢Oleh Yuschuk 先生为我们开发出这么一款优秀的调试器!

  也许 OllyDbg 时代已经过去但她会永远存留在我们F7 F8 F9这一代人心中


OllyDbg YYDS !!!



CpuDbg 会有两个版本, (在标题栏最右边能看到) Check 和 Free 两个版本.

现在发的是 Check 版本带有调试 日志 等信息主要是为了方便测试 定位 bug. 

bug修复的差不多,功能写的差不多后,会发Free 版本.

Check 版本 连续按 F7 或 F8 , 再性能差的电脑上可能会有卡顿的现象因为带有调试和日志信息,所以卡顿是正常的现象.  以后发布的Free 版本不存在卡顿问题.



调试器本人是在win10上研发的,所以在win10上相对稳定些. Win7上会有不少问题目前发现了不少win7上已知问题都已经修复了至于xp 我还没测(实在太忙了,没有时间测



目前调试器还有很多功能没有写本来是想等全部完善后再发的我是真怕这个调试器项目烂尾了所以才提前发的有大家的反馈BUG, 也许更新就会更有动力...

 (这里还要感谢下很早就加群测试反馈bug的群友们)



更新日志https://bbs.ollydbg.com/forum.php?mod=viewthread&tid=1&extra=page%3D1

调试器开发历程(文字版):https://www.bilibili.com/video/BV1PB4y1T7vT


(q群只是用来反馈bug, 调试器相关的交流可以加微信群.)

反馈bug 企鹅群:7五零4五七二九

调试器技术交流微信群:










  由于本篇文章不是同一时间段写的, (有好几年了时间跨度有点大写的内容可能有些凌乱

甚至前言不搭后语还请各位见谅!




 CpuDbg相对于 od1.x  x64dbg 就像是呱呱坠地的婴儿

  希望大家给CpuDbg 一点时间让她慢慢成长


       (Rome was not built in a day)



但愿有一天她的功能 软件方面能超越od1.x , 硬件方面能像劳特巴赫一样出彩







许魏有句歌词写的很好!


"曾梦想仗剑走天涯"






你当有鸿鹄之志、当骑骏马踏平川,

不要因为一时的低迷而忘记儿时吹过的牛,

即使没有观众你也应当全力以赴,

再为儿时吹过的牛奋斗一次吧,

当你回首往事时,

不因碌碌无为而悔恨、不因虚度年华而羞耻,

你就可以很骄傲的告诉自己,

我不负此生!


CpuDbg能成为您手中的剑伴您驰聘沙场戎马一生!!!


抱歉着急看春晚,排版有点乱,可以看PDF。



附件解压密码: www.ollydbg.com

因为论坛上传有限制大小,所以下列运行库和插件是分开的.

调试器直接无法运行,需要运行库解压出来复制过去.

插件也同样需要解压复制到相应的目录中.


[培训]《安卓高级研修班(网课)》月薪三万计划

最后于 2023-1-22 17:49 被CpuDbg编辑 ,原因: 调试器忘保存PDB了
注:下载本附件需支付 2雪币(note:2 points for downloading this attachment)
上传的附件:
收藏
点赞24
打赏
分享
最新回复 (85)
雪    币: 485
活跃值: (219)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
CpuDbg 2023-1-22 14:55
2
0


UI

---------------------------------------------------------------------------------------------------

2023.01.26

  1. 有不少朋友反馈 x32 或者 x96 运行时提示 "Not Found Keystone!!!" 

    解决方案: 可以将两个版本的运行库都同时解压出来. 有重复的点跳过就行了.(因为论坛上传有大小限制,所以我将运行库分出来了.)

  2. ALT+O(调试选项) 里面灰色的复选框或按钮, 表示功能还未写.(选项中有部分功能本人感觉用处不大的,未来部分功能也可能阉割掉)

  3. 每次编辑主题贴好像都要审核很久,为了方便以后有更新就放在1楼.(本调试器免费且长年更新)

最后于 2023-1-26 13:37 被CpuDbg编辑 ,原因:
雪    币: 2926
活跃值: (1297)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rleft 2023-1-22 16:30
3
0
沙发,点赞
雪    币: 165
活跃值: (1508)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
Nisy 5 2023-1-22 16:38
4
0
很强大 赞一个
雪    币: 6750
活跃值: (3338)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
romobin 2023-1-22 17:21
5
0
早就在用了 一直关注 感谢
雪    币: 5570
活跃值: (5104)
能力值: ( LV6,RANK:92 )
在线值:
发帖
回帖
粉丝
0xC5 1 2023-1-22 17:23
6
0
期待国产调试器的诞生!
雪    币: 2760
活跃值: (3317)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2023-1-22 17:48
7
0
强烈支持,做大做好。
雪    币: 2
活跃值: (1689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eewwqq 2023-1-22 20:51
8
0
很好,很强大。 赞一个。
雪    币: 2998
活跃值: (3004)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuxue 2023-1-22 21:24
9
0
赞!支持一下!!
雪    币: 797
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
benbird27 2023-1-22 23:05
10
0
支持!先装上用下。
雪    币: 5003
活跃值: (3064)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
樂樂 2023-1-23 00:26
11
0
很强大 感谢分享 支持一下
雪    币: 10813
活跃值: (2914)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jiqigouer 2023-1-23 00:55
12
0
牛逼,谢谢分享,不过写调试器非常难坚持
雪    币: 199
活跃值: (1582)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
freecat 1 2023-1-23 03:39
13
0
不错 支持一下
雪    币: 273
活跃值: (2841)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
R0g 2023-1-23 07:04
14
0

打不开

最后于 2023-1-23 07:06 被R0g编辑 ,原因:
雪    币: 485
活跃值: (219)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
CpuDbg 2023-1-23 08:31
15
0
R0g 打不开
抱歉,我文中没有说清楚, 你运行x96调试器,需要解压x64运行库. 
雪    币: 13270
活跃值: (4588)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tDasm 2023-1-23 08:47
16
0
首先感谢楼主的辛苦付出。
有二点说明:
1、OD可以把文件拖到调试器进行调试
2、OD有64位版本,本论坛有下载。
雪    币: 1781
活跃值: (5175)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEDIY 2023-1-23 09:20
17
0
ContinueDebugEvent(Pid,Tid,DBG_CONTINUE)
与
ContinueDebugEvent(Pid,Tid,DBG_EXCEPTION_HANDLED)

两者有何区别?“已处理”和“继续”按字面意思都应该继续向下执行吧?

雪    币: 1382
活跃值: (3100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小希希 2023-1-23 10:16
18
0
支持
雪    币: 8755
活跃值: (3189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chengdrgon 2023-1-23 12:25
19
0
牛人,强烈支持
雪    币: 2879
活跃值: (1055)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd 2023-1-23 14:01
20
0
x64dbg用起来还行就是问题也挺多。但是查字串和api函数,搜索方面确实方便很多。
但插件经常是更新几版后不能用,确实没有od兼容性好。
雪    币: 59
活跃值: (1481)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zbzb 2023-1-23 15:25
21
0
哇,大赞!就这UI,也要专门赞一个!
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2023-1-23 21:22
22
0
upupup
雪    币: 177
活跃值: (1826)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2023-1-23 22:23
23
0
牛人,强烈支持 
怎么加微信群?
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2023-1-24 10:41
24
0
太牛了!
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2023-1-24 10:49
25
0
UI 很漂亮!
最后于 2023-1-24 10:55 被靴子编辑 ,原因:
游客
登录 | 注册 方可回帖
返回