反汇编的问题,发大家帮一下忙啊!

breaksoftware
领域专家: 操作系统技术领域
2007-04-17 09:39:29
小弟最近在试着学习反汇编,自己就用DEV编译器简单编了几个win32控制台C++程序,然后用W32Dasm反汇编exe文件,然后出来好多汇编代码,我一直找不到我编写的那些C++代码对应的汇编代码。我比较了两个不同exe文件的反汇编代码,发现它们几乎是一样的!请问为什么会出现这种情况?那些相同的代码是不是win32控制台例行产生的?我怎么找到我编写的那部分对应的汇编代码呢?请问一下哪儿能看到典型的反汇编的程序的详讲?最好是一句一句的解释。
望大家指点,谢谢。
...全文
406 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
StarCraftPJF 2007-04-20
  • 打赏
  • 举报
回复
up
yangb2014# 2007-04-20
  • 打赏
  • 举报
回复
DEBUG试下,设置断点看看,
dxcnjupt 2007-04-19
  • 打赏
  • 举报
回复
楼主不厚道
居然能在反汇编代码里面找到注释。不知道CPU跑代码的时候碰到你的注释要怎么处理。

如果是windows exe程序的话,固定起始地址为0x400000。另外不同的编译器会加上不同的起始头,例如VC编译的C程序会把main放在0x401000。
最好先用调试器找一下,DEV把main放在了什么地址,然后直接在反汇编代码里面找相应地址。
czlyc006 2007-04-19
  • 打赏
  • 举报
回复
貌似反汇编Win32 GUI程序更简便写,因为有API函数调用可以做标识。
breaksoftware 2007-04-19
  • 打赏
  • 举报
回复
谢谢大家阿!
  • 打赏
  • 举报
回复
我理解楼主说的是特征代码的意思。
比如在要反汇编的代码之前插入inc eax;dec eax;inc eax;dec eax;inc eax;dec eax;等等。
反汇编的时候查找这些特征串是很容易定位目标的。
breaksoftware 2007-04-18
  • 打赏
  • 举报
回复
谢谢阿。其实我通过加注释符的方法找到过我要的代码段,只是我不知道怎么用其他不投机取巧的方法来找到。还是要谢你啊。
pig4210 2007-04-18
  • 打赏
  • 举报
回复
用C++、C啊写出来的程序一般因为使用了库函数,比如printf、cin等,都会被链接进一些必要的支持程序段,再说,高级语言写出来的程序一般都会加进一些附加信息嘛。要知道,同样的功能,用汇编写,也许就几K。而用高级语言写,可能会出来几百K的情况。这样,你反汇编出来的大部分都是一样喽。以后如果有经验了,自然知道怎么跳开这些相同之处了。反汇编出来不同之处就是原本程序的不同之处。
个人意见,我水平有限,只能这么解释了

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧