2010-03-18 18:39
更换了个图标.基本上支持OD所有的插件.目前发现不支持海风大牛的StrongOD.
压缩包里有个原版本的ImmunityDebugger.exe,因为ImmunityDebugger不支持修
改plugin目录名,所以稍微修改了下,使用原版的ImmunityDebugger.exe对应的插
件目录是old_plugin.修改版本支持OD插件的名字为ollydbg.exe,使用的时候不要
更改文件名,否则无法正确加载OD插件.
|
2010-02-03 23:39
API里/C 库函数之中貌似没有取根据一个字符串提取路径的函数,比如"C:\123\test.exe",
提取出C:\123.C库函数中有个函数strchar能根据标志返回末尾的串,在这种情况下一般
用来取文件名就非常合适,但是如果提取路径就不行了,下面的代码根据strchar的实现,稍
微该动了下,便可返回前面(左边)的字符串了,一样的很高效..- -
__declspec(naked) char * __cdecl strcharl(char * s,int tag){
_asm {
push eb |
2010-01-22 14:24
用atoi让我很不舒服,于是网上找到这资料,原名叫< CHAR与TCHAR处理函数>,觉得标题不妥于是把TCHAR改成WCHAR.
字符分类: 宽字符函数普通C函数描述
iswalnum() isalnum() 测试字符是否为数字或字母
iswalpha() isalpha() 测试字符是否是字母
iswcntrl() iscntrl() 测试字符是否是控制符
is |
2009-12-15 23:12
2009-10-08 21:10
网上很多类似的文章,其中很多示例程序都是在比较老的内核版本上测试过,很多在新的内核下根本无法运行,我收集了一些相关的资料,并给出一个在linux内核2.6.28(ubuntu9.04)上可以运行的程序代码.相比其他一些文章,修改如下:
1.增加了两个函数,清CR0的第20位,不然在替换sys_call_table的时候会报段错误.
unsigned int clear_and_return_cr0(void);
void setback_cr0(unsigned int val);
2.针对ubuntu9.04中,ps命令用的系统调用是sys_getdents,不是sys_getdents64(在suse系统里面用的是sys_getdents64),所以程序中 |
2009-09-22 23:35
2009-09-22 23:34
2009-09-22 23:33
花了点时间,大概整理了,比较马虎.本表主要是针对使用gdb逆向调试的时候作为一个命令索引表。
万恶的百度,好好的一个表一定要我拆成3份,很无奈...
|
2009-09-03 03:21
#define IRP_MJ_CREATE 0x00 // 0x38
#define IRP_MJ_CREATE_NAMED_PIPE 0x01 // 0x3c
#define IRP_MJ_CLOSE 0x02 // 0x40
#define IRP_MJ_READ |
2009-08-22 11:51
程序接受用户输入的5个字符, 每个字符空格分开;
允许字符为 ( 1 2 3 4 5 6 7 8 9 10 J Q K ) 其中任意5个 可以重复;
如果输入字符中包含有 ( J Q K ) 一律当成 '10'
比如 [ Q Q K 9 1 ] 等价于 [10 10 10 9 1]
算法:
字符例子 [ 7 5 3 Q 10 ]
1: 取出5个字符中的任意3个字符,进行加法运算.
要求: 能跟10进行取模,余数为 '0' , 或者通俗点就是10的倍数 .. 如果算法有好几种,则取有最小的数的算法
(比如: 上面例子中 , '7+3+10==20' , 但是又因为 'Q'=='10', 所以 '7+3+Q==20' |
2009-08-20 02:22
请试着编译、运行调试以下代码,在后面的叙述中可
能帮助你理解那些晦涩的反汇编代码.
#include <windows.h>
#include <stdio.h>
class ClassX
{
public :
ClassX(int n);
~ClassX();
static void Output (char * pszMsg);
public:
int GetValu |
2009-08-14 22:33
//VC-Console
#include <windows.h>
#include <stdio.h>
class X
{
public :
X () {printf ("X::X()\n"); x1 = 0xff ;}
~X() {printf ("X::X()\n"); x1 = 0xaa ;}
int x1 ;
};
X xobj ;
int main()
{
xobj.x1 = 3 ;
printf ("%d\n" , xobj.x1);
return 0 ;
}
很简单的一段代码,修改自逆向C++一文 |
2009-07-27 23:03
前言: W & H+ &x*
一直以来,国内对于一些技术的关注远落后与国外,国内互联网信息也少的可怜,而反病毒更是由于其商业价值所在,许多技术被国外先进商业公司束之高阁。我在初接触Symbian平台病毒分析的时候,几乎找不到相关文档,更找不到交流的人,所以借本次XCON撰写本文,与大家交流共勉。 s `/&8Z m
H1q+ h@Z
4i ]*@Q |
2009-07-23 22:38
在某些特殊的情况下需要修改当前EIP,一般在反汇编窗口中选中指定地址,
右键执行"此处为新 EIP"就可以了.由于OD这个菜单选项OD是动态插入的,
比如在当前指令地址OD是不会显示的,或者当进程结束状态下也不会显示,
这时需要将OD稍微修改下便可显示了.
下图显示了修改的位置,在这个位置往上还有不少判断,可根据实际需求自己
动手吧..
|
2009-07-04 20:08
|
|
|