能力值:
( LV15,RANK:520 )
|
-
-
2 楼
汇编很好玩吗?
|
能力值:
(RANK:10 )
|
-
-
3 楼
+1
|
能力值:
(RANK:290 )
|
-
-
4 楼
 +2
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
感谢共享
谢谢
|
能力值:
( LV5,RANK:60 )
|
-
-
6 楼
汇编很好玩吗?
如果没有后面的注释,可读性一塌糊涂,敢不敢后面不写注释
|
能力值:
( LV9,RANK:780 )
|
-
-
7 楼
呵呵,每个人的环境不一样,我是业余玩家,写驱动只会W32ASM不会其它。
写注释是因为照顾象我一样的新手朋友
因为我的代码完全是能用API就用API
所以有点汇编基础的人应该都能看懂
希望我的回答你能满意,谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢楼主分享
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
汇编很好玩 汇编能力强 读程序代码能力不可能弱!
|
能力值:
( LV9,RANK:780 )
|
-
-
10 楼
还不错。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
正在学习琢石成器,希望能早日看懂楼主的大作
|
能力值:
( LV7,RANK:110 )
|
-
-
12 楼
还可以,很喜欢用RadAsm
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
楼主能否把开发环境“RadAsm(Masm+Kmdkit)整合版”共享一下啊:)
|
能力值:
( LV9,RANK:780 )
|
-
-
14 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
看来还有人玩汇编驱动....找到同类的感觉确实不错. 另回答上面的问题 汇编确实好玩....像我这类新手 除了汇编容易一点入门外 其它怕是想搞清楚来龙去脉还是相当的麻烦
|
能力值:
( LV5,RANK:60 )
|
-
-
16 楼
汇编接触系统底层,用多了感觉和c没有区别。
radasm非常不错。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
非常不错的贴子!我喜欢汇编
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
学习中。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
冷嘲热讽很好玩么?
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
push [eax+ecx*4] ;压入原来的ServerBase
lea ecx,[eax+ecx*4] ;取序号地址 也就是 mov ecx,eax+ecx*4
push ecx ;保护ecx, MmIsAddressValid函数会修改ECX的值
invoke MmIsAddressValid,ecx ;检查地址是否有效
.if al== FALSE
;建议加上add esp,8
ret
.endif
这样的写法很危险. 当al为false的时候,未平衡堆栈直接使用了ret ,当然这个函数因为有参数不会出错
如果没有参数和变量,当al为false的时候会出错.
例:

将生成:
test1 将出错, test2 与 test3 正常
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
仔细的读了下,发现lz取ssdt序号的思路不错. 我以前是用内核工具查看对应函数的序号直接拿来用.受教了。
一点小建议,SYSCALL_INDEX 宏里直接使用eax就可以不用去注意保存ecx了.
|
能力值:
( LV9,RANK:780 )
|
-
-
22 楼
[QUOTE=AsmCoder;1208932]push [eax+ecx*4] ;压入原来的ServerBase
lea ecx,[eax+ecx*4] ;取序号地址 也就是 mov e...[/QUOTE]
受教了,一直没注意这方面的问题。
我修改了下代码 ,在判断返回前就恢复堆栈。
|
能力值:
( LV9,RANK:780 )
|
-
-
23 楼
谢谢你的建议,已经修改。
之前是出于调用程序可能用EAX和SYSCALL_INDEX宏同时做为参数的考虑。
|
|
|