一段简单文件系统的实现代码实现不了求助

调试逆向 【求助】用IDA 逆向的一段代码 貌似很简单 看不懂…… [文字模式]
- 看雪安全论坛
查看完整版本 : 调试逆向
夜夜独自__int16 __stdcall InitCmpData(int a1)
int v1; // eax@1
__int16 // ax@2
int v3; // edx@3
signed int v4; // ebx@3
int v5; // edi@3
int v6; // esi@3
signed int v7; // edx@5
signed int v8; // edx@7
signed int v9; // eax@8
v5 = a1 + 204040;
*(_BYTE *)(a1 + 204020) = 0;
*(_BYTE *)(a1 + 204021) = 0;
*(_WORD *)(a1 + 204022) = 0;
*(_WORD *)(a1 + 204024) = 0;
*(_WORD *)(a1 + 204026) = 0;
*(_DWORD *)(a1 + 204028) = 0;
*(_DWORD *)(a1 + 204032) = 0;
*(_DWORD *)(a1 + 204036) = a1;
v6 = a1 + 204040;
v3 = a1 + 12000;
*(_DWORD *)v6 = v3;
v3 += 24002;
while ( v4 );
*(_WORD *)(*(_DWORD *)(v1 + 204036) + v7) = 0;
while ( v7 & 12000 );
*(_WORD *)(v9 + *(_DWORD *)v5) = 0;
while ( v9 & 24000 );
while ( v8 );
result = 0;
result = -1;
望指点指点……
sessiondiy看到这个F5 我欣慰多了.
原来以前看到的F5都是人家手工整理好的...
xiilin看了老半天,发现这个函数的功能已经在函数名字上表现出来了……Initialization
夜夜独自是不是初始化了一个数组啊 那传入的是个什么东西啊?
仙果看不明白,真郁闷
xiilin是不是初始化了一个数组啊 那传入的是个什么东西啊?
地址:eek::eek::eek::eek:
AloneWolf看到这个F5 我欣慰多了.
原来以前看到的F5都是人家手工整理好的...
昨天偶才在自己的机器F5出来东东...的确没有别人贴出来的好看...
之前因为没有Patch那个插件...按了N+1次传说中的F5也没有反应...:eek::eek:
不用数字还是要手动整理才好看. 比如, 传进来的参数应该是 一个 指针, 4040 这段地方比较关键.
*(_WORD *)(*(_DWORD *)(v1 + 204036) + v7) = 0;
这样的语句太变态了, 看起来应该是 数据结构中的 结构指针 这样的嵌套, 如果不整理一下, 阅读太费劲.
夜夜独自还是要手动整理才好看. 比如, 传进来的参数应该是 一个 指针, 4040 这段地方比较关键.
*(_WORD *)(*(_DWORD *)(v1 + 204036) + v7) = 0;
这样的语句太变态了, 看起来应该是 数据结构中的 结构指针 这样的嵌套, 如果不整...
是……唉太BT^^
爱鸟__int16 __stdcall InitCmpData(int a1)
int v1; // eax@1
__int16 // ax@2
int v3; // edx@3
signed int v4; // ebx@3
int v5; // e...
哪位给个F5后的代码阅读教程?
leonwxida直接f5还不如直接看汇编。至少你要将变量名优化一下。
“*(_WORD *)(*(_DWORD *)(v1 + 204036) + v7) = 0”这样的语句只要你c++学好,应该能读懂的。v1,v7这里都是指针。变量前面的类似“(_DWORD *)”的是强制类型转换。最前面“*”表示解引用。本人的理解是这样。
DoItFreely别用F5了,比汇编还难懂
给你重构一个看看对不对。
short __stdcall InitCmpData(BYTE *buf)
return -1;
memset(buf+,16);
*(DWORD *)(buf + 204036) = (DWORD)//reference to self?
DWORD *p1 = (DWORD *)(buf + 204040);
DWORD v3 = (DWORD)(buf + 12000);
for(int i=8;i--;v3+=12001)
*p1++ = v3;
//DWORD *p2 = (WORD *)*(DWORD *)(buf + 204036);//p2 == buf
//for(int i=0;i&12000;)
// p2[i++] = 0;
memset(buf,0,12000*2);
//WORD *p3;
//p1 = (DWORD *)(buf + 204040);
//for(int i=8;i--;)
// p3 = (WORD *)*p1++;
// for(int j=0;j&12000;j--)
*p3++ = 0;
WORD *p3 = (WORD *)(buf + 12000);
for(int i=8;i--;)
memset(p3,0,12000*sizeof(*p3));
p3 += 12001;
夜夜独自3Q…… 啊 原来传入的是byte流啊
subme1看12楼的终于能明白是什么意思了
南方失败F5只是心理安慰啊,还不如看原来的……一段简单代码实现不了求助_百度知道
一段简单代码实现不了求助
提问者采纳
我帮你找了个做登录的例子,不过最好自己稍微改一下哈~ wenku。你可以抄一下.baidu/view&#47JSP页面你就把需要的东西写出来就好了。挺简单的,验证放在sevlet里去验证就好了
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 简单再生产的实现条件 的文章

 

随机推荐