能力值:
( LV2,RANK:10 )
|
-
-
2 楼
请问这是什么fasm?
注:我才是第一个顶的.别的都是假的.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
支持一下。。
|
能力值:
( LV13,RANK:350 )
|
-
-
4 楼
这么好的系列文章,我一定要顶啊
|
能力值:
( LV9,RANK:220 )
|
-
-
5 楼
传统的fasm啊,写这个专题我基本上没有用宏。所以大家可以直接编译的。
这里下载。
http://flatassembler.net/download.php
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
#include "stdio.h"
void main()
{
long addr;
__asm
{
mov eax, fs:[30h]
mov eax, [eax+0ch]
mov eax, [eax+1ch]
mov eax, [eax]
mov eax, [eax+8h]
mov addr,eax
}
printf("%lx\n",addr);
}
只用汇编还是不会写啥东西,学习
再支持一下
|
能力值:
( LV9,RANK:220 )
|
-
-
7 楼
[QUOTE=zapline;604624]#include "stdio.h"
void main()
{
long addr;
__asm
{
mov eax, fs:[30h]
mov eax, [eax+0ch]
mov eax, [eax+1ch]
mov eax, [eax]
...[/QUOTE]
代码最重要还是要理解。
如果仅写不理解的话就没什么意思了。
希望这个专题能让大家学到的是思路而并非是如何写。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
lz的文章很不错啊,希望能多看到这个系列的作品
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
是不是从29a搞过来的。。。。老东西了
|
能力值:
( LV9,RANK:220 )
|
-
-
10 楼
哎。
现在的人可悲的是连看都没有看就在那乱评论。
麻烦你去从29a一期杂志到八期杂志找找。
文章我力求从原理开始讲解,从文章也应该可以看到讲解更多的是原理以及思路。而且代码也更加短小精炼。每篇文章我花费不少心心思来想如何更全面更易懂的方式的来讲解,这年头鸟人就是多。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
好强大.顶!
|
能力值:
( LV12,RANK:300 )
|
-
-
12 楼
楼主给个系统的总结是很好的,而且写得比较详细。虽然这三种方法是很早就有人总结过了。
另外第一种方法因为依赖于主线程初始化时的堆栈地址,因此一般在PE感染型病毒里使用,基本不用在shellcode里。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
好多计算机语言都消亡了.
能读懂这些濒危语言的人都是国宝.
|
能力值:
(RANK:350 )
|
-
-
14 楼
感谢xfish的系列教学。
愿意将自己所掌握的知识拿出来与大家分享,就值得肯定。
有些知识点论坛也有,但整理梳理一下,对想学的人还是很有帮助的。
不足的地方,可以一起讨论,xfish再改进。
|
能力值:
( LV9,RANK:220 )
|
-
-
15 楼
不仅仅是主线程,只要shellcode中能取得CreateThread函数地址,那么创建工作线程在工作线程中取得然后写入回来也可以。
而且其实还有很多其他的思路,例如通过异常然后通过异常环境此时的线程环境来取得Kernel32.dll的地址,然后进行搜索等。。
|
能力值:
( LV9,RANK:230 )
|
-
-
16 楼
认真学习,好好领会。。。
支持楼主的系列。。。
|
能力值:
( LV13,RANK:1050 )
|
-
-
17 楼
文章写的不错,比较喜欢。但有两处笔误,都是以下这句。
mov eax, [fs:0ch] ;Get _PEB_LDR_DATA
|
能力值:
( LV9,RANK:170 )
|
-
-
18 楼
能写汇编的都是高手
|
能力值:
( LV9,RANK:220 )
|
-
-
19 楼
[QUOTE=combojiang;604742]文章写的不错,比较喜欢。但有两处笔误,都是以下这句。
mov eax, [fs:0ch] ;Get _PEB_LDR_DATA[/QUOTE]
感谢指出,的确笔误,已经修正。。
|
能力值:
( LV6,RANK:90 )
|
-
-
20 楼
支持楼主,顶!
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
顶顶顶,,,,
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
学习了,明天继续
|
能力值:
( LV12,RANK:300 )
|
-
-
23 楼
这就变成“先有蛋还是先有鸡”的问题了,你要取得CreateThread函数地址,用啥方法?还是先取kernel32.dll再得到CreateThread地址的。或者说,如果都有了CreateThread函数地址了,那直接用这函数地址去搜索kernel32.dll就行了。
|
能力值:
( LV9,RANK:220 )
|
-
-
24 楼
刚起来..
我在开头已经说了,线程在被初始化的时,其堆栈指针指向ExitThread函数的地址,一般我们在主线程初始化时来进行取得。这个方法的原理就是这样,而你在下面又叙述了遍而且说只能依赖主线程初始化时取得,这句话本来就是错的,任何线程都可以,我在文章早也已经说了原理。
所以我才要反驳你,这的确是先有蛋还是先有鸡,其实这个本就没什么讨论的,我在文章中早已经说过了,而你非要提下只能依赖主线程初始化时来进行取得。这个本身在shellcode中,只要先拿到鸡,然后在去拿蛋也可以,难道不是吗。。获取kernel32基地址方法本就很多,看你如何运用思路了,如我前面所提的思路等。。
下了,周末出去放松去了。。周一见吧。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
支持下,希望楼主坚持把教学搞完,千万别夭折了.
|
|
|