首页
论坛
课程
招聘
雪    币: 7138
活跃值: 活跃值 (57)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝

[原创]windows环境下64位汇编语言程序设计

2017-6-8 15:35 30096

[原创]windows环境下64位汇编语言程序设计

2017-6-8 15:35
30096

     进入x64时代用汇编写程序的越来越少了, 经常去的几个汇编论坛也越来越没人气. 也是,现在很少事情非得找到一个用汇编来写的理由了. 所以慢慢也就没落了.实际上32位汇编和x64汇编个人感觉差别也不大.为什么就没人用了呢..
 
     作为一个看<<Windows环境下32位汇编语言程序设计>>步入编程领域的人, 闲来无事, 就把该书的随书例子都重新翻译成x64的. 总共18章加3个附录. 为了表示向罗云斌致敬, 本文题目就叫<<Windows环境下64位汇编语言程序设计>>.
     
     x32上罗牛用的是MASM32的开发包, MASM32是一个好东西, 里面已经收集起来了开发windows程序所需要的编译器和头文件, 也都经过了较为严格的测试,总之之前我用MASM32基本没有遇到什么问题. 

     x64上,目前还没有MASM32那样的牛人来给我们收集头文件, 编译器和其他东西, 一方面可能有一些版权方面的问题, 一方面可能现在x64也不火了.没人搞这方面的工作,所以导致x64上用汇编很麻烦..难倒了很多新人. 就我在将<<Windows环境下32位汇编语言程序设计>>中的例子从32位修改到64位的过程中, 体会最深的一点就是并不是因为32位和64位寄存器大小的区别, 也不是堆栈传递参数的区别, 更不是其他的什么. 而是对齐问题. 对齐问题大部分又是因为头文件没有定义清楚. 所以我在修改的过程中. 一边写代码, 一边还要去修改头文件定义.. 很酸爽. 注意, 如果你在用x64汇编写程序的过程中遇到问题, 首先就想一想是不是对齐问题.. 现在堆栈都要按照16BYTE对齐, 不能乱搞了. 还有很多结构体也要按照16BYTE对齐. 

     为了修改<<Windows环境下32位汇编语言程序设计>>到x64上面, 我从vs2010里面copy出来了cl link rc等程序. 然后汇编器没有用vs2010的. ml64支持不了什么高级语法, 汇编想要写较大型程序必须要要有良好的结构体, 堆栈框架支持. 所以汇编器用的是开源的UASM 

     
      UASM是从之前的 JWasm 修改过来的, 这个汇编器还是开源的, 兼容MASM的语法. 另外头文件也是从JWasm那边搞过来的, 不过我加入了一些自己的私货. 比如C语言的头文件, 比如UNICODE支持. MASM32的时代我就已经找到了UNICODE支持中文办法, 不过一直没有推广出去. 如果你有幸看到这篇文章. 并且以后也会准备用汇编来写程序.. 一定不要再用老掉牙的ANSI编码, 而是要采用UNICODE来写.. 如果你用了附件我上传的开发包, 那么可以这样定义和使用UNICODE. 一种是在.const节里面定义字符串. 还有一种就向C语言一样定义字符串..  

      MASM支持中文UNICODE字符串定义
     
  ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; uasm -c -win64 Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    option casemap:none
    option win64:2
UNICODE        equ    True   
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include     unicode.inc

includelib    user32.lib
includelib    kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .const

szCaption    db    '恭喜', 0
szText        db    '当您看到这个信息的时候,您已经可以编译Win64汇编程序了!', 0
UszText        UString    ('当您看到这个信息的时候,',10,13,"您已经可以编译Win64汇编程序了", 21h, 0)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
Jmain    Proc


    ; ANSI编码调用方式
    ;invoke    MessageBox, NULL, offset szText, offset szCaption, MB_OK

    ; UNICODE调用方式
    invoke    MessageBox, NULL, offset UszText, offset UString$( "恭喜" ), MB_OK

    invoke    ExitProcess, NULL

Jmain     Endp

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    end    Jmain

  中文的完美支持. 依靠的就是unicode.inc 如果你下载附件的开发包,里面就已经自带了. 作者是陈浪涛. 也是个汇编高手. 有兴趣可以看看. 显然MASM的M不是Microsoft而是 Macro.. 用MASM的宏可以实现很多完全突破想象的功能, 这里有一个哥们就用MASM实现了面向对象. 有兴趣可以了解下. 
     
    
     关于附件中的例子编译方法和罗牛书上是一样的, 只是他用的是masm32 SDK包, 现在换成了UASM. UASM64压缩包解压到一个目录下, 运行目录下的set_path.bat就可以到各个例子目录下运行nmake了. 另外把TAB设置成8个BYTE. 这样显示出来的代码格式才正常. 

      //===========================================================================
     下面是我修改例子程序的时候, 遇到的一些问题. 不过都已经被解决了..

     无法接受和发送WM_COPYDATA消息, 原因是对齐方面的问题. COPYDATASTRUCT结构体必须按照16BYTE对齐. 我已经修改了winuser.inc文件, 将COPYDATASTRUCT结构体设置成了16BYTE对齐
    C:\JASM64\luoyunbin\Chapter04\SendMessage-1
     
     这个例子在win7 x64上已经试验不出效果了, 应该是win7的gdi画窗口的方式换了,不过虽然没有效果,我还是修改成了x64的版本.
     C:\JASM64\luoyunbin\Chapter07\DcCopy

     无法打开通用对话框 已修复OPENFILENAME对齐必须是16BYTE的. 所以我修改了系统的commdlg.inc后面的人就不会遇到这个坑了.
     C:\JASM64\luoyunbin\Chapter09\Richedit
     C:\JASM64\luoyunbin\Chapter10\FormatText
     
     设置结构体对齐
     pushcontext         alignment
     option fieldalign:16
     popcontext          alignment
    
     这些无法打开通用对话框的问题都是由于没有设置对齐引起的. 这个问题折腾了好久好久. 他们说现在用汇编和C差不多, 相信用C肯定不会遇到这种问题.  不禁又让我想起了以前用汇编写驱动的时候, DriverEntry写出来死活崩溃. 偶尔又不崩溃. 最好找了好久的问题才发现原来DriverEntry里面不能动ebx. 如果动了ebx就会出错, 想用的话就要push保存起来. 这些都是一路走来的坑...

     工具栏有编译错误,解决
     C:\JASM64\luoyunbin\Chapter09\Toolbar
     工具栏有编译错误,已解决
     C:\JASM64\luoyunbin\Chapter09\Wordpad
     工具栏错误解决, 主要是因为CommCtrl.inc头文件定义的有问题, 看来WinInc208 jwasm的作者还是没有masm32作者那样做那么多的测试.只是s使用h2incx工具转换好了就不管了. 这个转换难免还是有不少问题的..

     屌爆了, C:\JASM64\luoyunbin\Chapter10\FindFile 里面使用了COM接口也被我修改成了x64修改了不少的接口定义. 还修改了系统头文件的几个定义, 系统的ShlObj.INC里面关于SHBrowseForFolder等几个函数的名称粉碎方式定义错了.. 
     
     这是只适用于32位的例子.关于内存申请方面测试的例子, 所以就不修改了
     C:\JASM64\luoyunbin\Chapter10\Fragment

     这个是在9x做进程隐藏的. 和x64也没有关系也就不修改了.
     C:\JASM64\luoyunbin\Chapter13\HideProcess9x

     因为之前罗牛也没有做PE文件的分析,所以这个Test程序在x64上要将PE文件的Relocation stripped勾选, 不然每次地址都不一样patch就无从谈起了, 不过例子程序里面的可以直接运行,如果自己编译的话, 记得勾选Relocation stripped就好了..
     C:\JASM64\luoyunbin\Chapter13\Patch1
     
     Patch2 里面的Test程序也是要勾选Relocation stripped.并且为了可以使upx加壳,我加了不少的nop
     C:\JASM64\luoyunbin\Chapter13\Patch2
     
     这个例子应该是罗牛书中最有技术含量的几个例子之一, 也是汇编相对C语言C语言还有一些做不到的事情之一,处理重定位问题和写_invoke宏花了不少时间.
     C:\JASM64\luoyunbin\Chapter13\RemoteThread
     
     异常始终不进去.经过调试发现,SetUnhandledExceptionFilter调用必须写在函数里面. 不能和32位一样,使用裸函数. 应该又是堆栈对齐方面的问题. 
     C:\JASM64\luoyunbin\Chapter14\TopHandler
     
     SEH异常方面,x64完全变掉了, 现在变得更简单了.
     C:\JASM64\luoyunbin\Chapter14\SEH01
     
     C:\UASM64\luoyunbin\Chapter16\Chat-TCP
     第16章关于网络这块的定义都有问题, 主要问题是出在SOCKET. 之前UASM的头文件定义成了 SOCKET typedef u_int 实际上翻看windows的winsock.h头文件中的定义, typedef UINT_PTR        SOCKET;是一个64位的类型, 所以将头文件修改成 SOCKET typedef qword 就好了. 如果不修改所有和Socket有关的函数都会出问题. 另外fd_set结构体也要修改, 将对齐修改成8BYTE. 

     C:\UASM64\luoyunbin\Chapter17\AddCode
     17章最复杂的几个例子之一, 但是代码层面的复杂度都被我搞定了, 程序也可以正常运行了, 不知道最后一步调用MessageBox为什么会出错.. 参数各方面都是正确的. 最后发现出错地址在MessageBox函数里面的movdqa指令上, 然后手册发现movdqa指令必须16BYTE对齐, 所以加入了以下指令来做对齐工作,
MOVDQA - 移动对齐的双四字
将双四字从源操作数(第二个操作数)移到目标操作数(第一个操作数)。此指令可以用于在 XMM 寄存器与 128 位内存位置之间移入/移出双四字,或是在两个 XMM 寄存器之间移动。源操作数或目标操作数是内存操作数时,操作数必须对齐 16 字节边界,否则将生成一般保护性异常 (#GP)。

在 16 位寻址模式中执行时,不允许 128 位数据访问的线性地址与 16 位段尾重叠,此时的行为定义成保留行为。在这种情形下,特定的处理器版本可能会生成 #GP 异常,也可能不会,并且,跨越段尾的地址可能会通过舍位变成段首地址,也可能不会。

另外Chapter17\AddCode总共有两种方式, 一种是在节表后面添加一个节,以为一个节的大小毕竟有限, 所以这种方式是目前的主流方式,另外一种方式是扫描代码段看看有没有空间可以插入代码,这种方式现在不流行了, 因为现在PE文件FileAlignment对齐一般都是0x200而随便写一点shell code都会超过0x200 BYTE.. 这个例子的shell code就有300个BYTE. 因为要放置GetProcAddress 和Get Kernel32 base的代码, 在x64情况下很容易就超了..所以要实验在代码节中添加代码的方式可以找VC6编译的程序, VC6的FileAlignment SectionAlignment都是0x1000比较容易找到空隙. 不然就自己编译代码在link的时候加上这两个选项. 

#pragma comment(linker, "/ALIGN:0x1000")
#pragma comment(linker, "/FILEALIGN:0x1000")  

一个是设置文件对齐大小, 一个是设置内存对齐大小的. 
     
     C:\UASM64\luoyunbin\Chapter17\Reloc
     重定位显示的例子, 没有什么特别需要说的. 就是之前罗牛只处理了IMAGE_REL_BASED_HIGHLOW一种类型的重定位表, 这个在32位上也是没有错的, 但是x64上面的重定位表一般都是IMAGE_REL_BASED_DIR64, 我都给改过来了. 所以在看例子程序的时候需要注意一下. 

     C:\UASM64\luoyunbin\Chapter18\OdbcSample
     这是一个使用odbc数据库的例子, 刚开始遇到问题就是没有找到odbc.inc. 后面发现使用的不是odbc.inc文件, 而是使用的sql.inc sqlext.inc两个头文件, 另外UASM自己的头文件也是有问题的, sql.inc里面的函数声明都是proto stdcall. 然后link的时候报错.  无法解析的外部符号 _SQLRowCount@16,一类的. 这个名字一看就是使用了stdcall的名称处理方式, 然后我在odbc32.lib里面里面看到的名称是没有做任何处理的, 所以翻看头文件发现函数的原型定义错了. 原版里面都有stdcall. 现在去掉. 默认使用x64的fastcall..
     
     另外x64上面access的连接字符串也要修改一下. 
     32位: "Driver={Microsoft Access Driver (*.mdb)};dbq=path;"
     64位: "Driver={Microsoft Access Driver (*.mdb,*.accdb)};dbq=path;")
         
     还有, 例子里面使用了ListView. 操作ListView需要一个结构体LVITEM. 这个结构体在x64上面也是16 BYTE对齐的. 所以如果你自己找的头文件需要注意这个问题. 当然我发出来的UASM已经被我修改好了. 

     //===========================================================================
     最后, 所有的例子我修改完成以后都简单做了一下测试. 主要功能应该是没有什么问题的, 不过如果有什么隐藏的bug. 你可以报给我. joenchen@foxmail.com 当然也欢迎大家加群Q群127285697讨论技术问题. 
 
     编译环境的下载地址以为看雪附件上传限制. 我上传到了百度云. 请猛戳下载, 附件是修改的18章+3个附录.

     

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

上传的附件:
最新回复 (49)
雪    币: 7138
活跃值: 活跃值 (57)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
JoenChen 活跃值 4 2017-6-8 15:36
2
0

沙发自己占!!!

雪    币: 186
活跃值: 活跃值 (11)
能力值: ( LV12,RANK:205 )
在线值:
发帖
回帖
粉丝
coolboyme 活跃值 2 2017-6-8 15:48
3
0
板凳~
雪    币: 605
活跃值: 活跃值 (29)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
ugvjewxf 活跃值 2017-6-8 15:57
4
0
支持下群主,需要的时候再来细看下,
雪    币: 1
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kc朗 活跃值 2017-6-8 16:00
5
0
讚好
雪    币: 477
活跃值: 活跃值 (75)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
KooJiSung 活跃值 2017-6-8 17:30
6
0
最近搞技术的又活跃起来了,好事
雪    币: 450
活跃值: 活跃值 (59)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
pxhb 活跃值 2 2017-6-8 18:47
7
0
不错,学习
雪    币: 286
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
郭兴华 活跃值 2017-6-8 19:21
8
0
附件密码多少
雪    币: 8518
活跃值: 活跃值 (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Seven的怀念 活跃值 2017-6-8 19:48
9
0
支持啊~!学习一下~!感谢分享~!
雪    币: 35
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huluxia 活跃值 2017-6-8 19:56
10
0
必须要顶
雪    币: 29
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
弟子规 活跃值 2017-6-9 00:07
11
0
赞,感谢分享,现在学习64位汇编的高质量入门材料真心不多
雪    币: 4884
活跃值: 活跃值 (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Sam.com 活跃值 2017-6-9 00:26
12
0
佩服~~谢谢分享
雪    币: 236
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xuefengxiu 活跃值 2017-6-13 07:32
13
0
赞赞攒
雪    币: 132
活跃值: 活跃值 (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
fatecaster 活跃值 1 2017-6-13 09:00
14
0
学习一下,mark,感谢分享
雪    币: 60
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我只会易 活跃值 2017-6-13 12:21
15
0
支持了!!!!
雪    币: 135
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ntDownload 活跃值 2017-6-23 20:42
16
0
郭兴华 附件密码多少
写着都看不到?
雪    币: 12
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
杀戮界 活跃值 2017-7-28 17:26
17
1
有masm32的64头文件了,你bing搜下,记得再masm32论坛里,老外写的
雪    币: 203
活跃值: 活跃值 (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
听风说旧人 活跃值 2017-7-28 17:32
18
0
支持支持
雪    币: 286
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
郭兴华 活跃值 2017-8-20 17:28
19
0
windows环境下64位汇编语言程序设计-密码1.7z 
的密码是什么
雪    币: 179
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
m马s 活跃值 2017-8-23 13:51
20
0
雪    币: 411
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cuixzuo 活跃值 2017-8-23 18:01
21
0
干脆做成中文的吧
雪    币: 1566
活跃值: 活跃值 (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
Thvoifar 活跃值 1 2017-9-12 22:19
22
0
想知道  NASM编译器怎么样?
雪    币: 274
活跃值: 活跃值 (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
十文 活跃值 2017-11-5 15:35
23
0
郭兴华 windows环境下64位汇编语言程序设计-密码1.7z 的密码是什么
密码是1
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
静默静默 活跃值 2017-11-18 16:20
24
0
\JASM64\luoyunbin\Chapter09\Wordpad
_SetFont  里        mov        @stCf.crTextColor,0FFFFFFH
改变不了颜色为什么啊
_Init  里           invoke        RegisterWindowMessage,addr  ;szFINDMSGSTRING=>stFind????查找功能也用不了    能帮帮看看吗
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
静默静默 活跃值 2017-11-18 22:27
25
0
_SetFont proc _lpszFont:qword,_dwFontSize,_dwColor
local @stCf:CHARFORMAT

invoke RtlZeroMemory,addr @stCf,sizeof @stCf
mov @stCf.cbSize,sizeof @stCf
mov @stCf.dwMask,CFM_SIZE or CFM_FACE or CFM_BOLD or CFM_COLOR
mov eax,_dwFontSize
mov @stCf.yHeight,eax
mov eax,_dwColor
mov @stCf.crTextColor,0FFFFFFH ;???
mov @stCf.dwEffects,not CFE_AUTOCOLOR ;???
invoke lstrcpy,addr @stCf.szFaceName,_lpszFont
invoke SendMessage,hWinEdit,EM_SETTEXTMODE,1,0
invoke SendMessage,hWinEdit,EM_SETCHARFORMAT,SCF_ALL,addr @stCf    ??? EM_SETCHARFORMAT 这个消息根本不起作用,
ret

_SetFont endp                  CHARFORMAT这里面的值 我都用遍了 每一个有效果的  有时间的话能不能帮看看
雪    币: 2997
活跃值: 活跃值 (48)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
BDomne 活跃值 5 2017-12-25 10:57
26
0
感谢分享
雪    币: 5
活跃值: 活跃值 (12)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
yber 活跃值 2018-1-8 21:42
27
0
谢谢分享
雪    币: 17
活跃值: 活跃值 (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
张炜 活跃值 2018-1-15 11:44
28
0
建议楼主将这个写成一本书,发行出来
雪    币: 226
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
摸得到的熊猫 活跃值 2018-3-5 12:59
29
0
感谢分享。
雪    币: 1566
活跃值: 活跃值 (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
Thvoifar 活跃值 1 2018-5-18 00:19
30
0
楼主,win64汇编怎么调试啊?单步执行
雪    币: 1566
活跃值: 活跃值 (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
Thvoifar 活跃值 1 2018-5-20 17:50
31
0
突然发现了一些问题,第17章  Import  和  Export这2节中生成的main.exe,如果处理32位的exe  dll,main.exe会在提示“这个文件不是PE格式的文件!”后崩溃,目前还没找到原因
雪    币: 1267
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
suiyu 活跃值 2018-5-20 22:27
32
0
支持支持。不过现在用汇编写的确实少
雪    币: 7798
活跃值: 活跃值 (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SnowRen 活跃值 2018-5-20 22:52
33
0
罗老师的书实在是太好啦
雪    币: 3
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
FJLKNKHFIUHN 活跃值 2018-6-4 22:34
34
0
  你真是个好人
雪    币: 3
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
FJLKNKHFIUHN 活跃值 2018-6-4 22:38
35
0
    有个赏        其实大家应该赏点钱      等我赚点钱  一定回来赏
雪    币: 228
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kakasasa 活跃值 2018-6-4 23:10
36
0
mark
雪    币: 1199
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ielts 活跃值 2019-2-15 13:46
37
0
支持支持。
雪    币: 222
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fanboynet 活跃值 2019-2-25 17:21
38
0
64位现在很少用纯asm直接写了,支持一下。
雪    币: 350
活跃值: 活跃值 (131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
寧靜致遠 活跃值 2019-2-25 17:26
39
0
现在这年头还真在用汇编写程序的都是真的喜爱这玩意了。要么就是真·老古董。。
工作一直用C++ 都不记得怎么用MASM写汇编程序了。。。。
最后于 2019-2-25 17:27 被寧靜致遠编辑 ,原因:
雪    币: 1446
活跃值: 活跃值 (22)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Yougar 活跃值 2019-4-8 03:17
40
0
这个必须顶啊
雪    币: 2
活跃值: 活跃值 (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hrfhrf 活跃值 2019-11-23 13:14
41
0
支持一下,大牛,
雪    币: 15
活跃值: 活跃值 (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
noinoinoi 活跃值 2020-2-29 15:55
42
0
这个必须赞一个,绝对是好东西
雪    币: 2312
活跃值: 活跃值 (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
邪梦 活跃值 2020-2-29 22:03
43
0
感谢分享,强烈支持,
雪    币: 256
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hcywcx 活跃值 2020-6-18 10:39
44
0
32位的有必要看么?
雪    币: 676
活跃值: 活跃值 (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
flarejune 活跃值 2020-6-18 13:34
45
0
不是做逆向,不是打算写shellcode的话,汇编的确用处不大.
顶多的用途就是做片段优化(使用专用指令集处理,硬件加速).
做程序应用的话,除非你的程序小于1M,否则C写出来的东西都是辣鸡了,就别说汇编了.
雪    币: 36
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lxzxlrh 活跃值 2020-6-19 17:35
46
0
感谢分享 
雪    币: 36
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lxzxlrh 活跃值 2020-6-19 17:38
47
0
附件密码多少 
雪    币: 262
活跃值: 活跃值 (119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lovecra 活跃值 2020-6-20 21:56
48
0
寧靜致遠 现在这年头还真在用汇编写程序的都是真的喜爱这玩意了。要么就是真·老古董。。工作一直用C++ 都不记得怎么用MASM写汇编程序了。。。。
C++ 高手啊 不过记得当初学习微机原理以及汇编后觉得没什么用,因为当时学的VFP和DELPHI没有学精才会有那样的感觉,而且感觉汇编编程太烦了,甚至觉得汇编根本没必要学!但到了后来学习C,C++的时候,当进行代码调试时,当逐渐理解其中的变量,结构体,类的存储结构,逐渐利用指针,队列等等时发现自己还得好好的回忆回忆当初的微机原理及汇编语言。现在非常感谢自己大学期间学校给开的微机原理以及汇编语言这两门课(我不是计算机专业,我学的是物理教育专业)
雪    币: 32
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pzxbc 活跃值 15小时前
49
0
楼主真厉害!
雪    币: 124
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WangONC 活跃值 12小时前
50
0
支持支持,好东西
游客
登录 | 注册 方可回帖
返回