|
[原创]查找Intel指令手册
刚刚试了下,AMD的指令手册要怎么找。 AMD的全部X86和X86-64的编程手册在这里下载: http://developer.amd.com/documentation/guides/Pages/default.aspx#manuals 说下用AMD手册为mov [ebp - 4],0xAABBCCDD指令查找机器码的步骤: 我们需要的是它手册的卷3:《General Purpose and System Instructions》 先在卷三找到第三章《General-Purpose Instruction Reference》, 可以看到mov reg/mem32 , imm32 的格式是 C7 /0 id,也就是操作码是C7,后面跟一个Mod R/M字节,再后面跟一个双字。 那我们还是继续去找Mod R/M字节的格式: 它的Mod R/M的内容在1.4,《ModRM and SIB Byte》的1.4.3小节,《Operand Addressing in Legacy 32-bit and Compatibility Modes》 不像Intel手册有个方便的但是看起来有点恐怖的表,AMD手册这里,C7 45的这个45h是需要自己算出来的。 看到表1-13,《Operand Addressing Using ModRM and SIB Bytes》的开头: 看到,[rBP] + disp8对应的是Mod值01,R/M值101,这些都是2进制表示的值。 注意这里的disp8指的是相对rBP指示的地址的8位偏移,而不是指令用到的立即数。 而rBP指的是bp,ebp,rbp(64位模式下扩展到64位的ebp寄存器)这几个寄存器的统称。 刚刚Mod R/M字节里面,/digit的digit值是0(16进制;在二进制中是000),再考虑到这里查的是Mod值是01,R/M值是101, 合起来就是01000101,也就是1 + 4 + 64 = 69(dec) = 45(hex) 其中,中间的红色部分是/digit值,占3比特,前面是Mod码占2比特,后面是R/M码,占3比特。 这样,通过查找AMD手册也得到,mov [ebp - 4],0xAABBCCDD的机器码就是C7 45 FC DD CC BB AA |
|
|
|
|
|
[求助][求助]编程
小项目做什么都行啊。。贪吃蛇,俄罗斯方块。或者感染PE文件,键盘记录之类的,都算小项目吧。 |
|
[求助]请问现在有没有WinRAR的压缩算法
楼主你要试试去调试WinRaR把它的压缩代码提取出来整理好,造福大众么 |
|
[求助]请问现在有没有WinRAR的压缩算法
应该是楼主记错了吧。。不过一大批的LZ系的算法都由GNU用GPL公布了源码。 7z的话一向是有压缩源码的。 另外楼主可能是把rar格式记混成zip了。 zip那个是公布了源码,现在进入公共域了。所以Windows才原生支持zip(不需要装解压软件),而java 代码包、微软的docx文档、Chrome浏览器插件之类的都用zip压缩格式,都是这个原因。 |
|
[原创]发一个全自动打印shellcode的程序
mov eax, fs:0x30 // PEB mov eax, [eax + 0x0c] // PROCESS_MODULE_INFO mov esi, [eax + 0x1c] // InInitOrder.flink lodsd mov eax,[eax+8] //eax 就是kernel32.dll的地址了 学到有用的东西了 我都是去导入表那里找,不过这种找法有一些限制条件。 楼主的代码写的很清晰,多谢分享~~新的一年里遇到的第一个好东西 |
|
[原创]新年新愿望
大家新年快乐~新年新气象~ |
|
[求助]请高手帮忙看看,UPX的壳脱了还是没法用!附上未脱与已脱文件!
看了下,文件的NT可选头的SizeOfImage域根本没对齐,是000B3C1F,当然不行了。 送楼主一个我今天做的小程序,方便你查看 |
|
[求助]请高手帮忙看看,UPX的壳脱了还是没法用!附上未脱与已脱文件!
为什么UPX的壳需要脱。。。脱了然后去调试么。 |
|
[求助]匿名管道pipe的问题
它这个说法有问题。 建议楼主看Windows NT高级编程 简单来说,一个双向的管道有2个句柄可用。 一个是读句柄,一个是写句柄。 在这个情况下,由于你不用写句柄只用读句柄,你就必须记得先关闭写句柄,要不然就是内核对象泄露了。 它那个说法是错误的。 |
|
[求助]顶顶大名顶贴软件
不能修改硬盘么。。而且有些硬盘信息是操作系统生成的,保存在注册表。 |
|
|
|
[求助]关于新手嵌入式选择什么开发板学习好?
完全没碰过。。不过貌似经常有人问C51的那套KEIL的问题。。 |
|
[求助]关于windows程序调试
先习惯调试自己写的程序,这样开始调试二进制代码感觉比较快一些。。 OD调试的话,无非就是在MessageBoxA,MessageBoxW之类的函数下断点, 或者给内存地址、消息下断点。。 |
|
[推荐]推荐一款软件!PEID0.95
汗。。那我这个也能分析,还附带源码 |
|
[原创]新手的努力史
楼主是老前辈了。。 VB的确是个奇迹啊。。嗯。。 不过我从来没有喜欢过basic系的代码。。pascal也是。。于是无缘VB与delphi 所以C\C++以外的编译语言是从java入门,然后喜欢上C#的~ |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值