阳江采边可以学编程
阳江吧
全部回复
仅看楼主
level 12
__苏筱泽 楼主
本人对英语一窍不通,编程也是零开始。有边试可以从完全的零开始学习?
2014年10月29日 04点10分 1
level 14
蓝翔
2014年10月29日 04点10分 2
无靠档仔得无
2014年10月29日 05点10分
编程有好多种,专业学都爱几年哇
2014年10月29日 15点10分
回复 向陽枝 :嗯,需要毅力耐心
2014年10月29日 15点10分
回复 __苏筱泽 :我学都半年无心机学下去都,系识编几个简单程序[不高兴][不高兴]
2014年10月29日 16点10分
level 11
精英啦
2014年10月29日 04点10分 3
我也想去乃看看。
2014年10月29日 05点10分
回复 __苏筱泽 :电大也有得学
2014年10月29日 05点10分
回复 羽哥哥333 :古排工作忙,爱安排时间去看看
2014年10月29日 05点10分
回复 __苏筱泽 :其实好简单 自学都可以
2014年10月29日 05点10分
level 14
[滑稽]呵呵学无熟噶.
2014年10月29日 04点10分 4
你懂什么乌鸦
2014年10月29日 04点10分
回复 阳江农场仔 :北大青鸟.山东蓝翔.各种证书都有[怒]
2014年10月29日 05点10分
回复 阳江农场仔 :出世那阵我行路都无识啦,古阵华伟走啦
2014年10月29日 05点10分
level 12
你去网上搜搜关于编程个视频看看就知道了。
2014年10月29日 04点10分 5
搜的视频还是会有疑问
2014年10月29日 05点10分
level 15
网络教程
2014年10月29日 05点10分 6
网络教程有点无可靠
2014年10月29日 05点10分
level 11
我也想学
2014年10月29日 05点10分 7
[啊]有队
2014年10月29日 05点10分
回复 __苏筱泽 :有call我
2014年10月29日 10点10分
回复 阳关过客 :我先自学一段时间,近排古边公司有活动,无时间
2014年10月29日 11点10分
回复 __苏筱泽 :你做咪个,我识少少编程,你刚学可以带你
2014年10月29日 23点10分
level 13
新东方
       •·.ಠ_ಠ﹏如果牛奶味太多,朱古力味无定企,等到朱古力味翻翻黎,牛奶味又唔争气♥✍
2014年10月29日 05点10分 8
[怒]你都靠档仔
2014年10月29日 05点10分
level 9
建议先学VB
2014年10月29日 05点10分 9
古镇采研究紧VC
2014年10月29日 05点10分
回复 __苏筱泽 :VC有点难度,不过用途广泛强大。
2014年10月29日 05点10分
回复 浩海深澜 :嗯,万事起步难,我刚刚开始几日
2014年10月29日 05点10分
回复 __苏筱泽 :安卓是用VC写个,以后看你的了。[阴险]
2014年10月29日 06点10分
level 12
学Java吧,Android手机也可以用,网站的也能用上
2014年10月29日 06点10分 10
level 11
条件允许的话去大城市学好些,阳江就免了吧
2014年10月29日 07点10分 11
条件不允许[不高兴]
2014年10月29日 07点10分
level 12
inlineHook SSDT SSDT 内核函数某些被inlineHook 还原 编程方法
DWORD ssdtaddr,
oldreadaddr,readpush ,readjmpaddr,
oldwriteaddr,writepush ,writejmpaddr ,
ntopenprcaddr ,
ntopentrdaddr ,
KiAttachProcessaddr,KeStackAttachProcess_jmpaddr,
ObOpenObjectByPointeraddr/*,
h1,h2,hr,hw*/;
#pragma PAGECODE
__dec
lsp
ec(naked) VOID yjxsoft_com_KeStackAttachProcess()
{
KdPrint(("yjxsoft_com_KeStackAttachProcess\n"));
//KeStackAttachProcess_jmpaddr+0xD
__asm
{
//还原jmp占用处指令字节指令
push dword ptr [e
bp
+0ch]
push dword ptr [ebp+8]
push edi
push esi
//压入返回地址
mov eax,KeStackAttachProcess_jmpaddr
add eax,0xd //push dword ptr [ebp+8] 至CALL KiAttachProcess后的距离
push eax //返回地址
//KiAttachProcess 前7字节
mov edi,edi
push ebp
mov ebp,esp
push ebx
push esi
//jmp 至KiAttachProcess+7位置执行,执行完返回至KeStackAttachProcess_jmpaddr+D处继续执行
mov eax, KiAttachProcessaddr
add eax,7
jmp eax
}
}
#pragma PAGECODE
__declspec(naked) VOID yjxsoft_com_KiAttachProcess()
{
//KdPrint(("yjxsoft_com_KiAttachProcess\n"));
__asm
{
/* 804f9b5e ff7508 push dword ptr [ebp+8]
804f9b61 57 push edi
804f9b62 56 push esi
804f9b63 e890feffff call nt!KiAttachProcess (804f99f8)
804f9b68 5f pop edi
804f9b69 5e pop esi
804f9b6a 5d pop ebp
804f9b6b c20400 ret 4
*/
push dword ptr [ebp+8]
push edi
push esi
//恢复 前7字节指令
/* nt!KiAttachProcess:
804f99f8 8bff mov edi,edi
804f99fa 55 push ebp
804f99fb 8bec mov ebp,esp
804f99fd 53 push ebx
804f99fe 56 push esi
*/
push endCall //压栈返回地址
mov edi,edi
push ebp
mov ebp,esp
push ebx
push esi
//
mov eax, KiAttachProcessaddr
add eax,7
jmp eax
endCall:
pop edi
pop esi
pop ebp
ret 4
}
}
#pragma PAGECODE
__declspec(naked) VOID yjxsoft_com_NtReadVirtualMemory()
{
//KdPrint(("yjxsoft_com_NtReadVirtualMemory\n"));
__asm
{
//
push 0x1c
push readpush ////压栈参数
//
jmp readjmpaddr
}
}
//
//;///////////////////////////////////////////////////////////////////
//
#pragma PAGECODE
__declspec(naked)VOID yjxsoft_com_NtWriteVirtualMemory()
{
// KdPrint(("yjxsoft_com_NtWriteVirtualMemory\n"));
__asm
{
push 0x1c
push writepush //压栈参数
//
jmp writejmpaddr
}
}
//
//;/////////////////////////////////////////////////////////////////
//805cc613 8d8548ffffff lea eax,[ebp-0B8h]
//805cc619 50 push eax
//805cc61a ff75c8 push dword ptr [ebp-38h]
//805cc61d ff75dc push dword ptr [ebp-24h]
//805cc620 e84706ffff call nt!ObOpenObjectByPointer (805bcc6c)
//805cc625 8bf8 mov edi,eax
//805cc625-805cc61a= 0bh
#pragma PAGECODE
__declspec(naked)VOID yjxsoft_com_OpenProcess()
{
__asm
{
push dword ptr [ebp-38h]
push dword ptr [ebp-24h]
mov eax,ntopenprcaddr
add eax,0bh
push eax //CALL后返回的地址 非压栈参数
//
jmp ObOpenObjectByPointeraddr
}
}
//
//;//////////////////////////////////////////////////////////////////
//
#pragma PAGECODE
__declspec(naked)VOID yjxsoft_com_OpenTread()
{
//KdPrint(("yjxsoft_com_OpenTread \n"));
__asm
{
push dword ptr [ebp-34h]
push dword ptr [ebp-20h]
mov eax,ntopentrdaddr
add eax,0bh
push eax
//
jmp ObOpenObjectByPointeraddr
}
}
//
//;//////////////////////////////////////////////////////////////////
//
#pragma PAGECODE
__declspec(naked) DWORD __stdcall Findcodeaddr(DWORD code1,WORD code2,DWORD prcaddr)
{
__asm
{
mov edx,[esp+0x0c] //prcaddr
mov ecx,1000h
//while( ecx>0)
////
start:
sub ecx,1h
add edx,1h
mov ebx,dword ptr [edx]
xor eax,eax
mov ax,word ptr [edx+4h]
test ecx,ecx
jz end
cmp ebx,[esp+4] //code1
jnz start
cmp ax,[esp+8] //code2
jnz start
/*if (ebx==code1 && ax==code2) break */
end:
mov eax,edx
ret 0x0c
}
}
//;////////////////////////////////////////////////////////////////
//
#pragma PAGECODE
VOID PassTPhook ()
{
UNICODE_STRING g_ProcessAddr,g_ThreadAddr,g_KeAttachAddr,g_PointerAddr,g_KeStackAttachProcess;
RtlInitUnicodeString(&g_ProcessAddr,L"NtOpenProcess");
RtlInitUnicodeString(&g_ThreadAddr,L"NtOpenThread");
RtlInitUnicodeString(&g_KeAttachAddr,L"KeAttachProcess");
RtlInitUnicodeString(&g_PointerAddr,L"ObOpenObjectByPointer");
RtlInitUnicodeString(&g_KeStackAttachProcess,L"KeStackAttachProcess");
// __asm //
// __asm mov eax,eax
// ntopenprcaddr=(DWORD)MmGetSystemRoutineAddress(&g_ProcessAddr);
//
// Findcodeaddr(0xffc875ff,0xdc75,ntopenprcaddr);
__asm
{
//pushad
lea eax,g_KeStackAttachProcess
push eax
call DWORD ptr DS:[ MmGetSystemRoutineAddress]
push eax//传入 KeStackAttachProcess地址
//push 0E856h
//push 570875FFh
push 0875h
push 0FF0C75FFh
call Findcodeaddr
mov KeStackAttachProcess_jmpaddr,eax //// KeStackAttachProcess里 CALL KiAttachProcess的地址 定位push dword ptr[ebp+8]
//hook KeStackAttachProcess+7d
lea ebx,yjxsoft_com_KeStackAttachProcess
sub ebx,eax
sub ebx,5
mov BYTE ptr [eax],0E9h
mov dword ptr [eax+1],ebx
//hook end
/////////////
lea eax,g_ProcessAddr
push eax
call DWORD ptr DS:[ MmGetSystemRoutineAddress]
push eax//传入 NtOpenProcess地址
push 0dc75h
push 0ffc875ffh
call Findcodeaddr
mov ntopenprcaddr,eax ///NtOpenProcess里 CALL ObOpenObjectByPointer的地址
lea eax, g_ThreadAddr
push eax
call DWORD ptr DS:[ MmGetSystemRoutineAddress]
push eax ////传入 NtOpenThread地址
push 0e075h
push 0ffcc75ffh
call Findcodeaddr
mov ntopentrdaddr,eax //////存放 NtOpenThread 里 CALL ObOpenObjectByPointer的地址
lea eax,g_PointerAddr
push eax
call DWORD ptr DS:[ MmGetSystemRoutineAddress]
mov ObOpenObjectByPointeraddr,eax //存放 ObOpenObjectByPointer地址
2014年10月29日 15点10分 12
没看懂……
2014年10月29日 15点10分
回复 __苏筱泽 :汇编 内核架构
2014年10月29日 15点10分
回复 plc5003 :[不高兴]汇编全回老师肚了,,,编程无须识英语!
2014年10月29日 16点10分
回复 佬子亲自操了你 :真的么?好多看不懂。
2014年10月29日 16点10分
level 11
教我
2014年10月29日 16点10分 13
学紧
2014年10月29日 16点10分
level 11
编程,其实自学就可以了。不知道你想学什么语言?对于没有基础,如果有心,出广州培训机构相对专业很多;
2014年10月29日 17点10分 14
c语言,然后c++,这是我暂时定的目标
2014年10月29日 17点10分
其实,也是看你在哪方面发展。C在实际开发还是相当广泛。特别游戏和软件,包括嵌入其他语言封装、API都很好结合;
2014年10月29日 17点10分
回复 0_蓝调_0 :我暂时属于0完全无懂
2014年10月30日 01点10分
level 11
德玛西亚
2014年10月29日 17点10分 15
艾欧尼亚
2014年10月30日 01点10分
level 7
学编程,英语最好将计算机英语弄懂,好学很多
2014年10月29日 17点10分 16
level 9
求教
2014年10月29日 17点10分 17
level 5
毛识英语就是浪费时间
2014年10月29日 19点10分 18
level 11
。学编程。毛识英语华有得救,数学毛好就很难救了。。编程核心是算法,数学不过关会晕到死[乖]
2014年10月30日 00点10分 19
嫩我咩死火
2014年10月30日 01点10分
回复 __苏筱泽 :。。。毛知。系知得所有的计算机编程问题最后都演变成数学问题。。计算机专业英语具有针对性,可以补上来。数学不行我就不清楚了[太阳]
2014年10月30日 01点10分
回复 烛影乱古 :可以一试,未试过就放弃,我古世都无甘心
2014年10月30日 01点10分
回复 __苏筱泽 :随你。。几乎可以断定的是,在IT编程里,数学不好直接等于永无出头之日。。算法是核心中的核心。加油
2014年10月30日 01点10分
1