随笔分类 -  汇编&逆向

摘要:顺手记一记。呵呵修改寄存器命令r @eax=1 //将eax置为1修改内存命令ed 80505648 00001234 //将内存为80505648的数据改为00001234 阅读全文
posted @ 2012-11-28 22:01 瓜蛋 阅读(7545) 评论(0) 推荐(0)
摘要:1、路径中不要有空格2、提示找不到头文件sourceannotations.h。把C:\Program Files\Microsoft Visual Studio 10.0\VC\include\下的CodeAnalysis 文件夹复制到C:\WinDDK\7600.16385.1\inc\api 下即可 阅读全文
posted @ 2012-11-25 22:16 瓜蛋 阅读(354) 评论(0) 推荐(0)
摘要:Hi,This is just a little starter for people interested in starting Kernel-Mode DevelopmentBy following an good thread on UIC forum, opened by a beginner that wanted to know how to start with Device Driver Development, I remembered that long time ago published a similar blog post on that subject.Now 阅读全文
posted @ 2012-11-24 09:04 瓜蛋 阅读(395) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2012-10-27 17:58 瓜蛋 阅读(430) 评论(1) 推荐(0)
摘要:作者:小童工具:OllyDbg、Delphi程序一个、易语言程序一个、MFC程序一个----------------------------------------------------------------------------------------------------------------------------------------------------------《《《Delphi程序》》》特征码:FF93200100005BC353-------------------------------------------------------------------- 阅读全文
posted @ 2012-10-09 14:37 瓜蛋 阅读(536) 评论(0) 推荐(0)
摘要:一、 前言 前段学习反调试和vc,写了antidebug-tester,经常会收到message希望交流或索要实现代码,我都没有回复。其实代码已经在编程版提供了1个版本,另其多是vc内嵌asm写的,对cracker而言,只要反下就知道了。我想代码其实意义不是很大,重要的是理解和运用。 做个简单的总结,说明下实现原理和实现方法。也算回复了那些给我发Message的朋友。 部分代码和参考资料来源:1、<<脱壳的艺术>> hawking2、<<windows anti-debugger reference>> Angeljyt3、http://bbs. 阅读全文
posted @ 2012-07-02 16:46 瓜蛋 阅读(1488) 评论(0) 推荐(0)
摘要:GAS中每个操作都是有一个字符的后缀,表明操作数的大小。C声明GAS后缀大小(字节)charb1shortw2(unsigned) int / long / char*l4floats4doublel8long doublet10/12注意:GAL使用后缀“l”同时表示4字节整数和8字节双精度浮点数,这不会产生歧义因为浮点数使用的是完全不同的指令和寄存器。操作数格式:格式操作数值名称样例(GAS = C语言)$ImmImm立即数寻址$1 = 1EaR[Ea]寄存器寻址%eax = eaxImmM[Imm]绝对寻址0x104 = *0x104(Ea)M[R[Ea]]间接寻址(%eax)= *ea 阅读全文
posted @ 2012-06-23 06:07 瓜蛋 阅读(649) 评论(0) 推荐(0)
摘要:最近一直研究一个对个人而言很有价值的一个LIB库的逆向。在今天下班后突然灵感闪现,这个断断续续逆了接近一周的核心管理类。终于在今天给逆完了。在最后一个函数里,碰到了之前基本没有用过的一条指令。(呵呵,高手见笑了!)当然光看单句的汇编指令,是没有办法看出具体的作用的,而且还很可能会认为原作者本来就是用汇编来实现的!呵呵,先不废话,先贴出反汇编代码一睹为快:mov dword ptr ,64h // int bxor eax,eax cmp dword ptr ,0 setg al sub eax,1 and eax,64h add eax,0C8h mov dword ... 阅读全文
posted @ 2012-06-23 06:03 瓜蛋 阅读(464) 评论(0) 推荐(0)
摘要:int main(int argc, char* argv[]){ int i; scanf("%d", &i); int j = i / 2; printf("%d", j);return 0;}编译后:10: int j = i / 2;00401039 mov eax,dword ptr [ebp-4]0040103C cdq0040103D sub eax,edx0040103F sar eax,100401041 mov dword ptr [ebp-8],eax即:M / 2 为mov eax,Mcdqsub eax,edxsar e 阅读全文
posted @ 2012-06-22 23:27 瓜蛋 阅读(447) 评论(0) 推荐(0)
摘要:1.enter等价于:push ebpmovebp, esp在函数的入口时常用。2.leave等价于:movesp,ebppopebp;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>一段常见的代码格式如下:.text:00401450 push ebp.text:0040145 阅读全文
posted @ 2012-06-20 23:04 瓜蛋 阅读(405) 评论(0) 推荐(0)
摘要:FS寄存器指向当前活动线程的TEB结构(线程结构)偏移说明000指向SEH链指针004线程堆栈顶部008线程堆栈底部00CSubSystemTib010FiberData014ArbitraryUserPointer018FS段寄存器在内存中的镜像地址020进程PID024线程ID02C指向线程局部存储指针030PEB结构地址(进程结构)034上个错误号 阅读全文
posted @ 2012-06-09 19:41 瓜蛋 阅读(1826) 评论(0) 推荐(0)
摘要:I just tried compiling a couple of C++ snippets on VS2010 and analyzed the executables on IDA Pro. Something I noticed is that there most of them have something like the following at the start(shortly after a call to __security_check_cookie)xor eax, ebpand something likexor ecx, ebpat the bottom. Wh 阅读全文
posted @ 2012-06-07 20:04 瓜蛋 阅读(977) 评论(0) 推荐(0)
摘要:计算机中数码的表示:定义-》正数:原码,反码,补码相同。负数:原码为其对应正数原码最高符号位取反。 反码为其原码除符号位外都取反。 补码为其原码除符号位外取反加1。所以最高位符号位都不变。补码机:正数补码为其原码,负数为其正数原码取反加1。NEG指令,相当于0-OPR,并影响进位标志CF.数学意义上相当于:相当于0-OPR在计算时实际是以补码形式运算,运算时只有0不影响CF,其它情况都影响CF.为什么,请看以下分析:(1)假设有数:a=3;那么:NEG a分析:a补码为0011,0的补码为0000,所以0000-0011最终会向高位借1所以会有CF=1(2)假设有数:a=-3;那么:N... 阅读全文
posted @ 2012-06-03 02:35 瓜蛋 阅读(3266) 评论(0) 推荐(0)
摘要:汇编标志位:标志名 标志 1 标志 0OF (溢出标志) OV NVDF (方向标志) UP DN IF (中断标志) DI EI SF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA AC PF (奇偶标志) PO PE CF (进位标志 ) NC CY英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry. 阅读全文
posted @ 2012-05-20 12:45 瓜蛋 阅读(462) 评论(0) 推荐(0)