能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我能很负责的告诉你,反汇编后的代码,跟这个一样
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢老大!~
请问使用什么工具?
|
能力值:
( LV9,RANK:610 )
|
-
-
4 楼
IDA~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
;
; 赏屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
; ? This file is generated by The Interactive Disassembler (IDA) ?
; ? Copyright (c) 2006 by DataRescue sa/nv, <ida@datarescue.com> ?
; ?Licensed to: Paul Ashton - Blue Lane Technologies (1-user Advanced 03/2006) ?s
; 韧屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
;
; Input MD5 : B10F70A1DCD595E3CA4ED9E189A735C6
; File Name : F:\masm32\HelloWord.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 0000002C ( 44.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00000400
; Flags 60000020: Text Executable Readable
; Alignment : default
.686p
.mmx
.model flat
; Segment type: Pure code
; Segment permissions: Read/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
public start
start proc near
push 0 ; uType
lea eax, Caption ; "Win32Asm"
push eax ; lpCaption
lea eax, Text ; "Hello, world!"
push eax ; lpText
push 0 ; hWnd
call MessageBoxA
xor eax, eax
push eax ; uExitCode
call ExitProcess
int 3 ; Trap to Debugger
start endp
我找了一个“IDA 5.0 Adv 5.0.0.879”打开,确是上面的代码,好像相差很大啊
|
能力值:
(RANK:410 )
|
-
-
6 楼
差距当然会有了。不过我不觉上面反汇编出来的代码和你的代码有多大的差距,基本上就是你上面的源码了。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
szText db "Hello, world!",0
szCaption db "Win32Asm",0
===这个是我没有编译的源代码
编译之后,有2句类似的,但是"Win32Asm"、Hello, world!" 都是出现在注释“;”之后,好像没有赋值?
lea eax, Caption ; "Win32Asm"
lea eax, Text ; "Hello, world!"
请教请教
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
lea eax, Caption ; "Win32Asm"
lea eax, Text ; "Hello, world!"
不是写明白了吗?第1个取标题的有效偏移地址,第2个取对话筐文本的有效偏移地址。
|
能力值:
(RANK:410 )
|
-
-
9 楼
; 这不是和你的程序差不多吗?
start: start proc near
push MB_OK push 0 ; uType
lea eax,szCaption lea eax, Caption ; "Win32Asm"
push eax push eax ; lpCaption
lea eax,szText lea eax, Text
push eax push eax ; lpText
push NULL push 0
call messageboxa call MessageBoxA
xor eax,eax xor eax, eax
push eax push eax
call exitprocess call ExitProcess
end start start endp
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
lea eax, Caption ; "Win32Asm"
lea eax, Text ; "Hello, world!"
===这个看不出Caption和Text的值来自哪里?; "Win32Asm" 前面的;是注释吧?
请教请教
|
能力值:
(RANK:410 )
|
-
-
11 楼
你双击Caption或Text变量IDA会自动跳转到Caption和Text的值的地方。
"Win32Asm"是IDA添加的注释,他是告诉你Caption保存的值就是"Win32Asm"字符串。
|
能力值:
( LV6,RANK:90 )
|
-
-
12 楼
小虾版主真的是太负责了,这么简单的问题都亲自去回答。建议楼主花两个小时看看书,就什么都明白了。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
谢谢版主!!!
楼上的可能都不知这个是什么问题,就在那里说
我使用IDA,看到的代码,没有看到那个地方有赋值的
莫非你可以看到???
|
能力值:
( LV9,RANK:610 )
|
-
-
14 楼
代码中对字符串只有引用,没有赋值
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
lea eax, Caption ; "Win32Asm"
lea eax, Text ; "Hello, world!"
===从这个地方,也看不到怎么引用的
要是在上面双击才跳到引用的对方,那就是说IDA反汇编的代码不完全?
怎么才能得到完全的代码呢?
|
能力值:
(RANK:410 )
|
-
-
16 楼
那是不可能的。
|
能力值:
( LV9,RANK:610 )
|
-
-
17 楼
楼主要求太苛刻了吧…
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
那两个字符串取到地址就行了,其它的MessageBox全弄好的,不用你来确定它们在那里,也不是每次运行都是在同一个地址,具体的地址是由系统的底层来维护的,PE加载器把文件加载时会随机分配一段内存给程序,然后重新计算各种数据的相对的偏移地址,就可以使用的.
这是菜鸟的理解,也不知道对不对?
|
能力值:
( LV9,RANK:250 )
|
-
-
19 楼
怎么才能得到完全的代码呢?
在脑海中思考一下就出来了 不然怎么叫逆向呢 这些是最基础的东西 是可以不经过大脑就出来的 否则今后的代码就都免谈了
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
已经有百分之 九十九是一样的,居然还说跟源码不像...可能也许是...是...是.....
|
能力值:
( LV9,RANK:380 )
|
-
-
21 楼
楼主是想直接有一个反汇编工具,F5一下,反汇编代码就直接变成可编译代码 = =!
|
|
|