「“原创”」的归档

Comments 沒有留言 »

很早就听闻Ghost的大名,界面简洁,响应速度极快,同时支持多人管理,一直以来没想着把玩,这次记起来就做了这个教程,如有纰漏,欢迎指正。
这是完成后的  http://ghost.jt4b.com

什么是Ghost?

Ghost 是一套基于 Node.js 构建的开源博客平台(Open source blogging platform),
具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 WordPress。

Linux下Node.js的安装

下载最新的nodejs,这里强烈推荐下载官方已编译好的版本,自行编译比较麻烦,而且容易遇到各种诡异的问题。

wget https://nodejs.org/dist/v5.3.0/node-v5.3.0-linux-x86.tar.gz

下载后解压

tar -xzvf node-v5.3.0-linux-x86.tar.gz

解压后将文件夹放到你认为合适的地方

关联全局

ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/node /usr/local/bin/node
ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/npm /usr/local/bin/npm
ln -s /home/jt4b/node-v5.3.0-linux-x86/bin/n /usr/local/bin/n

这样你就直接能在控制台输入指令了
输入

node -v
npm -v

查看版本

QQ截图20160201202940

安装成功

Ghost的安装以及遇到问题

这里下载的是Ghostchina制作的Ghost 0.7.4中文集成版

wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip
unzip -uo Ghost-0.7.4-zh-full.zip

解压后进入目录,执行

npm install --production

这时居然报错了,运行npm start看看,可以看到

报错

看来是Ghost并不支持最新版本的node,怎么办呢?还好node附带一个非常方便的管理模块n
输入

n 0.10.28

就可以轻松切换到0.10.28版了 (推荐用0.10.21)

此时再执行

npm install --production

就安装成功了。
接下来配置数据库,GHOST默认使用的是SQLite3,这里我们使用MySQL。
创建一个名为ghost的数据库,打开Ghost目录下的config.js,如果没有就拿config.example.js复制一份出来重命名为config.js
Production部分将其修改为

database: {
            client: 'mysql',
            connection: {
                host     : '127.0.0.1',
                user     : 'test',
                password : 'test',
                database : 'ghost',
                charset  : 'utf8'
            },
            debug: false
        }

开启的端口可以自行设置config.js找到如图位置修改

QQ截图20160201201746
这里我将其修改为5555端口 保存后可以输入

npm start

QQ截图20160201203952

可以看到顺利启动了,浏览器输入 http://ip:5555 已经能顺利访问。

但这还不行,因为当你结束会话时,任务就会结束。所以此时就要用到forver了

npm install forever -g

安装forver CD进Ghost目录
运行

NODE_ENV=production forever start index.js

这时Ghost就挂载到forver上了,如果想关闭可以通过

forever stop PID

指令进行。

Nginx反向代理设置

这时已经可以通过IP:5555访问我们的Ghost了,可这样并不便捷也不美观,这里我要将其绑定到我的二级域名ghost.jt4b.com上
控制台输入

vi /usr/local/nginx/conf/nginx.conf

将下列代码添加进去

server {
                listen 80;
                server_name ghost.jt4b.com;

                location ~ {
                proxy_pass http://ip:5555; //自行修改
       }
                access_log /home/wwwroot/jt4b.com/log/ghost.log combined; #access_log end
                error_log /home/wwwroot/jt4b.com/log/ghost.log crit; #error_log end
       }

这里我启用了日志,不想启用可以改成

access_log off; #access_log end
error_log /dev/null; #error_log end

保存后

nginx -s reload

重启nginx
稍等片刻后打开ghost.jt4b.com可以看到已经挂载成功了。

QQ截图20160202014406

Comments 沒有留言 »

其实这是09年的东西了,比较简单的变形壳,是我当时申请LCG时的考题。最近无意中被我从邮箱内翻出来了,同时又联想到最近fly兄的unpack论坛永久关闭的消息,权当对逝去青春的祭奠了。

考题

111

脱文
1.修复 oep stolen code
到OEP很简单 ESP定律 shift+f9 2次只接到OEP
有2种方法修复oep stolen code 1种去掉花指令 把代码补到OEP前 2就是整理代码后直接此处DUMP
整理下代码大概是

004C5C0D    55              push    ebp
004C5C11    8BEC            mov     ebp, esp
004C5C16    83C4 F0         add     esp, -10
004C5C1C    B8 D8D44900     mov     eax, 0049D4D8
004C5C24    E8 8305F4FF     call    004061AC
004C5C29    A1 DCF44900     mov     eax, dword ptr [49F4DC]
004C5C31    8B00            mov     eax, dword ptr [eax]
004C5C36    E8 5529F9FF     call    00458590
jmp     0049D7F4               //跳向的是FOEP

我比较懒选择后者 修复后DUMP下来
2.dump iat and fix

首先OD加载 停在

004C5087 >  60              pushad                                   ;

前几句就有花 但是总体看上去是PESPIN 先设置 除了Invalid or privileged instruction之外其他全选
按2次SHIFT+F9 下断 bp LoadLibraryA SHIFT+F9 取消断点后 ALT+F9回程序领空

004C5A4D    85C0            test    eax, eax                         ; kernel32.7C800000
004C5A4F    0F84 28060000   je      004C607D
004C5A55    50              push    eax
004C5A56    E8 C5FCFFFF     call    004C5720
004C5A5B    2BD2            sub     edx, edx
004C5A5D    F9              stc

004C5A4D 处停下 向下到 004C5AA6 处F4 CTRL+F9 到达

004C579E    60              pushad
004C579F    0BFF            or      edi, edi
004C57A1    75 16           jnz     short 004C57B9
004C57A3    8B9D D9224000   mov     ebx, dword ptr [ebp+4022D9]
004C57A9    2D 01000000     sub     eax, 1
004C57AE    8B0483          mov     eax, dword ptr [ebx+eax*4]
004C57B1    0385 D1224000   add     eax, dword ptr [ebp+4022D1]
004C57B7    EB 72           jmp     short 004C582B
004C57B9    8B9D D5224000   mov     ebx, dword ptr [ebp+4022D5]
004C57BF    8A47 FF         mov     al, byte ptr [edi-1]
004C57C2    24 7F           and     al, 7F
004C57C4    8885 2B234000   mov     byte ptr [ebp+40232B], al
004C57CA    FF37            push    dword ptr [edi]
004C57CC    8F85 34234000   pop     dword ptr [ebp+402334]
004C57D2    2BC9            sub     ecx, ecx
004C57D4    80BD E5264000 C>cmp     byte ptr [ebp+4026E5], 0CC
004C57DB    75 05           jnz     short 004C57E2
004C57DD    74 01           je      short 004C57E0
004C57DF    68 8BEC8B3B     push    3B8BEC8B
004C57E4    03BD D1224000   add     edi, dword ptr [ebp+4022D1]

花指令有点多 清理下后就清楚多了
F4运行到 004C57EF E8 1B0B0000 call 004C630F
向下

004C5833   /76 35           jbe     short 004C586A
004C5835   |03BD C9224000   add     edi, dword ptr [ebp+4022C9]
004C583B   |3BF8            cmp     edi, eax
004C583D   |76 2B           jbe     short 004C586A

改为

004C5833   /EB 35           jmp     short 004C586A
004C5835   |03BD C9224000   add     edi, dword ptr [ebp+4022C9]
004C583B   |3BF8            cmp     edi, eax
004C583D   |EB 2B           jmp     short 004C586A

向下

004C5877    C3              retn 处F4

继续向下看
分析下去 来到

004C5B20    FF6424 FC       jmp     dword ptr [esp-4]

这里壳开始猥琐IAT了 住手 – -||!
修改为

jmp      004C5B73
004C5B73    8902            mov     dword ptr [edx], eax

这样就跳过了IAT加密 拿IMREC dump下地址就填004C5C0D 抓取后发现指针全为真
FIXED主程序后正常运行 over~~~~~

注:因为是以前的东西,win7以上系统可能会存在兼容问题
原题文件

脱壳后文件

Comments 沒有留言 »

Comments 沒有留言 »