如何读懂vb.net的反汇编代码

tutuaction 2005-04-14 03:58:28
我编写的vb.net程序,调试的过程中
提示我反汇编代码,我也看不懂,更不知道如何解决,请各位帮帮忙,如下:
00000000 push esi
00000001 mov esi,ecx
00000003 cmp dword ptr [esi+4],0
00000007 je 0000003E
00000009 cmp dword ptr [esi+8],0
0000000d je 0000003E
0000000f mov ecx,dword ptr [esi+4]
00000012 mov edx,dword ptr [esi+8]
00000015 mov eax,dword ptr [ecx]
00000017 mov eax,dword ptr [eax+0Ch]
0000001a add eax,dword ptr ds:[7BB216FCh]
00000020 mov eax,dword ptr [eax]
00000022 call dword ptr [eax+0Ch]
00000025 mov dword ptr [esi+8],0
0000002c mov ecx,dword ptr [esi+4]
0000002f mov eax,dword ptr ds:[7BB2022Ch]
00000035 call dword ptr [eax]
00000037 mov dword ptr [esi+4],0
0000003e nop
0000003f pop esi
00000040 ret


看着看着我就晕了!哪里有这方面的资料也可以提供给我?
...全文
303 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzybc 2005-06-03
  • 打赏
  • 举报
回复
有这种想法,正常
tutuaction 2005-06-03
  • 打赏
  • 举报
回复
牛人没有来,给分最后一个
jjkcom 2005-06-03
  • 打赏
  • 举报
回复
反编译的代码在功能效果上与原代码是相同的,我认为反编译的代码的风格却不好,尤其是充满goto语句。代码把原来的switch条件块换成if条件块,将foreach循环块换成while循环块。估计这是由于它是从IL那里翻译出来的,而IL就是一门基于堆栈的语言,在IL里面没有流程控制语句,全部使用goto + Label模拟,于是得到这样的结果。
你可以辅助分析
noway8881 2005-06-03
  • 打赏
  • 举报
回复
看堆栈
Ninputer 2005-06-03
  • 打赏
  • 举报
回复
编译的时候选择debug,而不是release,然后把那个.pdb文件和你的Exe放在一起,再出错就不用看反汇编了,直接有源代码。
  • 打赏
  • 举报
回复
当初怎么读懂汇编的?
ruixing123 2005-04-15
  • 打赏
  • 举报
回复
反汇编托管代码? 脑袋有问题吧。。

你怎么不反汇编JAVA的CLASS文件?

反汇编 =! 反编译
Hotthing 2005-04-15
  • 打赏
  • 举报
回复
你把你的源程序贴出来看看, 这前面几行是检查两个调用参数是不是为零, 如是则退出!
chenyuming2004 2005-04-15
  • 打赏
  • 举报
回复
牛人啊。
我到现在最多也只用到把别人做好的DLL或EXE反编译成C#或VB的源代码进行分析。
athossmth 2005-04-14
  • 打赏
  • 举报
回复
看看ildasm的帮助吧
toygo 2005-04-14
  • 打赏
  • 举报
回复
我劝你不要干这种事,还不如自己开发
farrio 2005-04-14
  • 打赏
  • 举报
回复
不会。看来需要明白asm和windows内核的专家来了。上帝保佑你。
tutuaction 2005-04-14
  • 打赏
  • 举报
回复
00000025 mov dword ptr [esi+8],0
总是提示我这行有问题,我不知道如何是好

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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