西科之Re3简单思路
此处调用 怀疑使用内联汇编
OD动态调试,进到main函数会看到第一次输出
往下有一个动态装载Dll链接库,加载Kernel.dll 然后……或者CreateProcessA 创建一个挂起的自身。
然后获取上下文。
剩下好像交与了新进程,这块有点没看太清楚对新进程的寄存器怎么个修改法。可以理解为代码注入到新进程,或者调试新进程。
下面还有一个setthreadcontext
可以定位到新进程的输入。
这是接受输入的
这一块是输出GetIt !
上面没法调试,结合了IDA获取了算法。
拿到密文和加密算法……剩下的就是暴力的手段了……
void re3_getkey() { int t=0,i=0,index=0; char jikekey[9]="JIKE1202",flag[100]=" ",temp; char key[100] = "Fiac>d;=ImlNNfQPR[lPJ?hsIEmrN;=H"; char CharSet[100]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890?!@#$%^&*()_+\\{}[]|<>"; do { for (i=0;i<83;i++) { flag[index]=CharSet[i]; temp = ((flag[index]&0x20|jikekey[index%strlen(jikekey)])^(flag[index]<<(jikekey[index%strlen(jikekey)]&1)))%65+58; if (temp==key[index]) { index+=1; break; } } } while (index < 32); printf("%s \n",flag); }
还是暴力美学好
flag{Yrven_Is_here_Nqt_Hero_spt}
页面下部广告