NetRocs blog | About programming technology

Web Name: NetRocs blog | About programming technology

WebSite: http://www.dbgtech.net

ID:13821

Keywords:

blog,NetRocs,About,

Description:

收到个Blog留言找这个东西的。没想到这么多年前的东西还有朋友需要。这里放一份上来吧,因为DbgTech网站的论坛被我撤掉了,老的已经比较难找。当年做安全的时候做的玩具,权当娱乐大众。HideKd v0.3Hide WinDbg、KD from detected.Load1、Run HideKd.exe to load HideKd.sys.2、Enjoy yourselfHistoryv0.3Fix some bug.v0.2Add driver loader HideKd.exe.v0.1Skip KdDebuggerEnabled,KdEnteredDebugger detect.Skip SharedUserData- KdDebuggerEnabled detect.Skip NtQuerySystemInformation detect.点击下载:HideKd 升级了VMWare 11,老的Mac OS虚拟机没法跑了。找了一下拿到这个补丁。这里放一份点击下载:unlocker202.zip September 27, 2013 version 2.01的Olly dbg 2.01中使用Command Bar v3.20.110会在启动后崩溃。原因是OD加载插件后对比返回的版本,发现插件支持的版本小于当前版本号会FreeLibrary。Command Bar在前面的初始化中做了SubClass,但是在DLL DETACH中没有正确反初始化,造成call WndProc的时候崩溃。修改返回的2010000版本号为2010001解决。点击下载:CmdBar另外,也可以直接修改OD2下面位置的代码解决:004D878E |. 81FF 01000102 |cmp edi, 2010001这里放一个跳过了插件版本判断的ollydbg.exe点击下载:ollydbg 从去年开始就发现VPN不定期的出现异常。断断续续忍受着用了将近1年,还是找了个办法搞定。记录一下方便后来者。我之前的VPN是搭建在自己Linux VPS上的pptpd服务器。某次GFW升级后常常出现连接超时或者在帐号认证的步骤超时,错误码常常为800或者7xx。因为目前GFW针对VPN标准协议处理得比较完善,所以改用SSH隧道+Sock5代理的形式。Sock5代理可以用putty的SSH隧道功能方便的开启一个本机代理端口,然后采用Proxifier作为客户端连接到本地的SSH代理端口上。SSH因为有安全连接层,而且正常的业务访问使用得很多,GFW在封杀上会相对比较保守,应该能够顶上不少时间。 Received a license key from Andreas L?w.Thanks A LOT!!! NetRoc许久没搞安全方面的东西了。最近有些时间看了看android下面的开发,看去看来总是想往内深入,结果又往Native和内核挖过去了……研究了一下ARM架构下面的inline实现,网上搜了搜似乎没有找到多少资料。想了想还是写出来吧,当作笔记。由于时间不多,也不是为工作而看,仅仅是做了粗略的实现和研究,并没有深入下去。这篇手记的目的不在于详细描述整个HOOK实现的过程,而仅仅对一些关键点作一些描述。说到Inline hook,了解这个词的同志们都应该知道,无非是修改目标函数处的指令,跳转到自己的函数,并且提供调用原函数的stub,即可完成整个流程。但是在ARM下面情况和我们熟悉的x86有所不同。ARM芯片的运行状态分为arm和thumb两种模式,分别有不同的指令集,arm指令为定长32位,thumb指令为定长16位(thumb-2中进行了扩展,可以使用32位thumb指令)。同一段代码中可以混用两套指令集,通过一些带有interworking功能的跳转或者load指令可以在两种模式间切换。做ARM下的inline,首先遇到的就是指令模式的问题。另外,ARM架构下,CPU也具有分开的指令缓存和数据缓存,类似x86下的DTLB和ITLB。但是在实现过程中发现,arm的缓存作用非常明显,而且刷新机制不太确定,因此自修改代码需要经常主动控制缓存的刷新。这一点,可以通过NDK的API cacheflush实现。下面简单说说一些主要问题:关于页保护这一点对于熟悉Linux编程的同志们应该不是问题,mprotect修改为PROT_READ | PROT_WRITE | PROT_EXEC即可。页面大小可以通过包含ndk下面 asm/page.h 文件,里面定义的一系列宏用于获得页面大小和进行对齐运算。关于模式转换和跳转Arm下主要的分支指令如BX,BLX等,都可以切换指令模式。详见arm的用户手册。这里主要讨论模式的选择和切换时机。只有一个问题需要注意,arm处理器执行时,由于流水线的关系,会预取两条指令,因此当前指令取到的pc值,始终是之后第三条指令的地址。比如当前指令地址是0x8000,那么当前pc的值,在thumb下面是0x8000 + 2 * 2, 在arm下面是0x8000 + 4 * 2。由于运行时我没有找到简便的办法能够确切知道被hook的目标函数指令集,所以这个问题留给了hook的使用者来决定。Hook之前应通过逆向工具获知所有目标函数是arm还是thumb指令。如果要根据目标函数指令集的不同而对hook函数采用不同的 编译选项,显然是一件麻烦的事情。而arm模式的指令由于单条指令包含的语义更多,是我们的首选。因此可以考虑主仅使用arm指令编译hook函数,而在跳转的同时切换到arm模式。关于跳转插入的指令方面,由于arm指令带立即数的跳转范围只有4M,thumb的跳转范围只有256字节。所以首选ldr pc,xxxx指令来实现。对于arm指令的目标,这个指令很容易选择。如下:ldr pc, [pc,#-4]32位跳转绝对地址指令为单个32位数字:0xE51FF004。但是thumb模式下的16位ldr指令没有办法向pc中load,选择就很成问题。如果单纯使用16位thumb指令的话,跳转部分需要占用大量字节数,而因为arm下面编译器常常使用pc的值作为基址来计算地址,被搬动过的指令中就极有可能存在这种指令。搬动过后的代码中就必须对这部分指令进行修正,而又由于thumb所能够支持的立即数很小,跳转范围也很小,这种修正往往非常麻烦,需要用几条同等指令来替换一条指令。经过考虑,还是决定放弃对ARMv5的支持,直接使用ARMv6T2之后支持的thumb-2指令集。thumb-2支持32位thumb指令,也支持ldr以pc为目标寄存器:ldr.w pc,[pc,#0]32位跳转绝对地址指令为单个32位数字:0x00F0DFF8所有需要跳转的地址,需要注意的是bit0的处理。如果bit0为1,跳转后会切换到thumb指令模式,如果bit0为0,会切换至arm模式。当目标为arm的时候,我们不需要特殊处理,编译器会处理地址的计算。但是当目标为thumb的时候,从hook指令跳转到hook函数,以及调用原始函数的时候,都需要注意地址bit0的处理。关于搬出来的原始指令按照win32下Detours库的实现方式,被HOOK函数的前面几条指令,会搬到一个trampoline中,并在这些指令后添加跳转至原代码后续部分的指令。在搬动过程中,需要对被移动的指令进行地址修正。在处理ARM平台inline的过程中也需要作这样的工作。但是实际上在处理的时候会发现,要做到这一点是非常困难的。ARM下常常会生成下面这种将pc作为地址参照的指令块而由于arm平台寻址范围较小,编译器通常选择将数据和指令在内存中的存放混杂在一起。thumb模式下,由于指令中能包含的立即数非常小,这种问题会表现得异常突出,修正的时候也常常一条指令被拉长为数条。因此代码修正会有非常大的工作量。这部分问题由于太消耗时间,我也仅仅是对arm下的inline进行研究性实现,也就没有管这个问题了。实际项目如果要用到hook,这个部分花费的时间应该比单纯hook跳转的实现要大得多。在不考虑并发和效率的情况下,当hook函数中要调用原函数时,可以考虑临时恢复hook,并在调用完成后再次hook来解决。但是始终是相当不优雅的实现。关于线程处理修改hook目标的指令时,和x86平台下一样,也需要注意有可能某些线程刚好执行到被修改的指令中的问题。Win32下可以枚举线程并修改context到被搬迁的指令中去。但是Linux内核系统下很难进行线程的控制。估计可以采用接管信号处理,并向进程内所有线程调用pthread_kill来实现。功能:本软件用于查看Starling兼容格式的位图字体。支持png,jpg,gif,bmp格式的材质文件,以及XML格式的字体描述文件。修正了上一个版本显示字体颜色全部为黑色的问题。现在能显示材质中真实颜色了。Download:BmpFontViewer.airWin32 application package 这段时间研究了一下AS下面的图像格式。测试了一下,TGA格式图片经zlib压缩之后一般比同样的PNG图片要小。32bit格式png经处理过后的Pixel数据能通过SetPixels直接传递给BitmapData,加载速度非常快。这里发个编解码器。主要功能有:支持ImageType为1,2,9,10类型的图片。即带调色板,或者直接真彩色的格式都可以解码。同时可以解码RLE的调色板或者真彩格式。支持8bit、16bit、24bit、32bit色深的图片。32bit图片可以支持alpha通道。编码器只支持32bit带Alpha通道格式。并且输出图片按原点在左上角的方式输出。通过这个编码器编码过的图片在使用TgaDecoder解码时候能够直接转换为BitmapData,因此解码速度比其他TGA格式都要快。实际项目中使用时,应该尽量采用这种格式的tga。编码器和解码器都支持处理zlib压缩数据。可通过参数设置由于有些偏门格式没有找到测试文件,所以测试不完全。使用方法:解码:var dec:TgaDecoder = new TgaDecoder();dec.Decode( barrData, m_cboxCompressed.selected);var bmp:Bitmap = new Bitmap( dec.bitmapData);编码:var barrData:ByteArray = TgaEncoder.encode( m_bmpData.bitmapData, m_cboxCompressed.selected);swc和示例项目下载: TgaCodec 实在是又忍不住吐槽SB的Adobe了。3.1的AIR SDK,导出apk之后手机运行黑屏。跟了大半天,发现是stage.stage3Ds里面没有东西。最后发现似乎Captive Runtime需要3.2以上的AIR SDK。FB4.6里面带的FlexSDK中AIR是3.1版本,没有任何报错,没有任何警告,这货居然就给我打包了。IDE里面带了的功能,居然还得手动升级SDK,服了

TAGS:blog NetRocs About 

<<< Thank you for your visit >>>

Websites to related :
Africa Check | Sorting fact from

  A top pharmacist says the continent’s largest economy has been reduced to a bystander in the race to counter the coronavirus pandemic. Are some of hi

Australian Bureau of Statistics,

  Our new beta website has arrived. Check out beta.abs.gov.au and tell us what you think.

Forum | EA Answers HQ | EN

  Turn on suggestions Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.We’ve temporarily chan

Home - Office for National Stati

  Taking part in a survey?It s never been more important.Discover how our census statistics help paint a picture of the nation and how we live.Weekly de

Elvis Presley News All the Lates

  ElvisPresleyNews Elvis Presley News Always First with Elvis News. Welcome to Elvis Presley News site to the latest Elvis News, reviews, interviews, El

Version Control with Subversion

  Subversion, a free book about the ubiquitous Apache Subversion version control system and written by some of the developers of Subversion itself.As y

Login do Professor

  IP = 42.51.1.112Os professores devem acessar o Professor On-line com CPF e Senha.Lembramos que a senha no professor on-line a mesma usada para verific

Boing Boing - A Directory of Mos

  Read the rules you agree to by using this website in our Terms of Service. We are a participant in the Amazon Services LLC Associates Program, an affi

OPIC is now DFC

  The Overseas Private Investment Corporation transformedinto the U.S. International Development Finance Corporation.

MAVERICK

  MAVERICK - Laboratoire LJKINRIA Rh ne-Alpes - ZIRST655 avenue de l'Europe38334 Saint Ismier CedexFRANCEModels and Algorithms for Visualization and Ren

ads

Hot Websites