void InvalidateProgWindow(void) //廢止窗口


lypwell 發表在 痞客邦 留言(0) 人氣()


int wndprog_get_text(char *s, char *mask, int *select, t_sortheader *ph, int column)  //獲取文本


lypwell 發表在 痞客邦 留言(0) 人氣()


void initProgTable() {
 

lypwell 發表在 痞客邦 留言(0) 人氣()


void initProgTable() {
 

lypwell 發表在 痞客邦 留言(0) 人氣()

Progress.cpp:
LRESULT CALLBACK wndprog_winproc(HWND hw,UINT msg,WPARAM wp,LPARAM lp) {
int i,m,shiftkey,controlkey; //定義整型變量
HMENU menu,mLoad,mCmd,mRun,mLabels=NULL,mVars=NULL; //定義多項菜單句柄

lypwell 發表在 痞客邦 留言(1) 人氣()

Progress.h:
 
#define PROG_CMD_LEN 256 //定義程序命令行長度
#define PROG_RES_LEN 128

lypwell 發表在 痞客邦 留言(0) 人氣()


char HexString2BinChar(const char *s) //hex字符串轉換到bin char


lypwell 發表在 痞客邦 留言(0) 人氣()


char * HexString2BinArray(const char * s) //轉換Hex字符串到bin數組
{

lypwell 發表在 痞客邦 留言(0) 人氣()

Search.h:
 
#pragma once
 

lypwell 發表在 痞客邦 留言(0) 人氣()

guicon.h

#pragma once


 


#ifdef _DEBUG


#ifndef __GUICON_H__


 


#define __GUICON_H__


 


 


 


//#include "stdafx.h"


 


void RedirectIOToConsole(); //重定向輸出輸入到命令行


 


#endif


 


#endif


 


/* End of File */


lypwell 發表在 痞客邦 留言(0) 人氣()

//在反彙編窗口上下文菜單下調用
int mruGetCurrentMenu(char* buf) {
char buf2[4096] = {0}; //定義為0,4096個字節的緩衝區buf2
char key[5];

lypwell 發表在 痞客邦 留言(0) 人氣()

 
接下來繼續
mru.h:
void mruAddFile(char* szFilePath);//添加文件

int mruGetMenu(char* buf);//獲取菜單

int mruGetCurrentMenu(char* buf);//獲取當前菜單

int mruGetCurrentMenu(HMENU mmru, int cmdIndex); // 獲取腳本上下文菜單 For Dynamic MRU List (Script Window Context Menu)

int mruCmdMenu(HMENU mmru,int cmdindex);//cmd菜單

mru.cpp:
//mru使用的原因是Ollydbg主菜單是靜態的,所以為下一個olldbg開始存儲mru

void mruAddFile(char* szFilePath) {//參數是文件路徑

char buf[4096] = {0};//定義一個字節為0大小為4096的緩衝區

int n;

char key[5];//定義字串

strcpy(key,"MRU ");//把"MRU"特徵字串複製到key

HINSTANCE h=hinstModule();//獲取自身ODbgScript.dll的模塊句柄

for(n=1; n<=5; n++) { //n為1至5時循環

key[3]=n + 0x30; //ASCII n 根據n不同 key為"MRU1""MRU2""MRU3""MRU4""MRU5"

ZeroMemory(&buf, sizeof(buf));//buf歸0

Pluginreadstringfromini(h,key,buf,0);//讀ollydbg.ini文件中的MRU存取的路徑到buf

if (strcmp(buf,szFilePath)==0) {//如果文件路徑與參數輸入的路徑相同

//Move File to first MRU移動文件到最先的MRU

key[3]='1';//即"MRU1"

Pluginreadstringfromini(h,key,buf,0);//再次讀ollydbg.ini第一項"MRU1"

Pluginwritestringtoini(h,key,szFilePath);//寫入新路徑

key[3]=n + 0x30;//重新寫入當前MRU讀到的位置

Pluginwritestringtoini(h,key,buf);//寫入當前位置的MRU

return;

}

}

for(n=4; n>0; n--) {//如果n從4遞減到1

//Add File then Move others 添加文件然後移除其他

key[3]=n+0x30;//根據n不同 key為"MRU4""MRU3""MRU2""MRU1"

ZeroMemory(&buf, sizeof(buf));//緩衝區歸0

Pluginreadstringfromini(h,key,buf,0);//讀出路徑到buf

if (strlen(buf)) {//如果路徑不為空

key[3]=n+1+0x30;//移到下一位MRU

Pluginwritestringtoini(h,key,buf); //即把路徑往下移

}

}

key[3]='1';//MRU1

Pluginwritestringtoini(h, key, szFilePath);//寫入路徑

}

//在主菜單被調用一次ON MAIN MENU, ITS CALLED ONCE

int mruGetMenu(char* buf) {

char buf2[4096] = {0};//定義為0長度為4096的緩衝區

char key[5];

char key2[5];

int p=0;

int c,v;

string path;//路徑

HINSTANCE h=hinstModule();//獲取自身ODbgScript.dll的模塊句柄

strcpy(key,"MRU ");//賦值"MRU"到key

strcpy(key2,"MRU ");//賦值"MRU"到key2

for(int n=1; n<=5; n++) {//n為1至5時循環

key[3]=n+0x30; //ASCII n 根據n不同 key3"1""2""3""4""5"

key2[3]=key[3];//複製一個副本到key2

ZeroMemory(&buf2, sizeof(buf2));//緩衝區歸0

Pluginreadstringfromini(h,key,buf2,0);//獲取ini文件中的MRU到buf2

Pluginwritestringtoini(h,key2, buf2);//寫入buf2到mru

if (strlen(buf2)) {//如果路徑不為空

if (PathFileExists(buf2)) {//如果路徑有效

buf[p]=0x32; p++;//緩衝區的第p為"2"

buf[p]=key[3]; p++;//緩衝區的第p+1為"3"

buf[p]=0x20; p++;//緩衝區的第p+2為" "

path=buf2;//路徑為讀出的路徑

c=path.rfind('\\') + 1;//使用std字串函數最後一次"\\"的位置,并到下一位

while ( (v = strchr(&buf2[c],',')-&buf2[c]) > 0) {//"\\"之後一位開始查找第一個','位置,v是最後一個"\\"和之後第一個','的距離,假如','存在而且兩點距離不重合時候

buf2[c+v]='.';//替換','到'.'

}

while ( (v = strchr(&buf2[c],'{')-&buf2[c]) > 0) {//"\\"之後一位開始查找第一個'{'位置,v是最後一個"\\"和之後第一個'{'的距離,假如','存在而且兩點距離不重合時候

buf2[c+v]='[';//替換','到'['

}

while ( (v = strchr(&buf2[c],'}')-&buf2[c]) > 0) {//"\\"之後一位開始查找第一個'}'位置,v是最後一個"\\"和之後第一個'}'的距離,假如','存在而且兩點距離不重合時候

buf2[c+v]=']';//替換','到']'

}

strcpy(&buf[p],&buf2[c]); p+=strlen(&buf2[c]);//串拷貝

buf[p]=',';p++;

}

}

}

if (p>0) buf[--p]=0;//如果p大於0,緩衝區buf的前p為歸0

return p; //返回指針

}

lypwell 發表在 痞客邦 留言(0) 人氣()

1 2 3 4 5
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。