delphi 内存代码数据完整性校验验怎样实现

文章 - 0&评论 - 2&trackbacks - 0
一 什么是MAP文件
&&&&& 什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。
&&&&& 如果要查找代码行号,需要使用下面的公式做一些十六进制的减法运算:
&&&&& 崩溃行偏移 = 崩溃地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
&&&&& 为什么要这样做呢?我们得到的崩溃地址都是由 偏移地址+ 基地址得来的,所以在计算行号的时候要把基地址减去,一般情况下,基地址的值是 0x 。另外,由于一般的 PE 文件的代码段都是从 0x1000 偏移开始的,所以也必须减去 0x1000 。
二 Delphi 下生成MAP文件的方法&
& & & project & -& & options & -& & Linker & -& & Map & file & 选择detailed。 &生成的位置在Exe文件所在的目录。
&&&&&&代码
procedure&TForm1.Button1Click(Sender:&TObject);var&&&&&&&&&I,&&&J:&&&I&&&&p:&&&PCbegin&&&&I&&&:=&&&10;&&&&J&&&:=&&&0;&&&&p&&&:=&&&&&&&p^&&&:=&&&'A';&&&//&&&36行.&&这里会报错
&&&& 运行时会报错
这里可以发现出错地址是:$00401A51
根据:&&&&& 崩溃行偏移 = 崩溃地址(Crash Address) - 基地址(ImageBase Address) - 0x1000
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& =$00401A51 - $ -$1000
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& =$00000A51
用记事本打开生成的MAP文件Line&numbers&for&Unit1(Unit1.pas)&segment&.text&&&&32&0001:00000A48&&&&35&0001:00000A49&&&&&36&0001:00000A4E&&&&37&0001:00000A54&&&&40&0001:00000A58&&&&42&0001:00000A7D&&&&43&0001:00000A8E&&&&44&0001:00000ABD&&&&45&0001:00000AEE&&&&49&0001:00000AF8&&&&50&0001:00000B10&&&&52&0001:00000B44&&&&52&0001:00000B4B
那么,通过在MAP文件里查找小于或等于$00000A51的最大值就是,我们要得到的崩溃行偏移.
这样得到出错行在, Unit1单元的36行.& 正好是这行:&&&p^&&&:=&&&'A';&&&//&&&36行.&&这里会报错
建议给客户的时候不要带着map文件,map文件里记录着所有程序函数的名称及入口内存地址,太方便别人破解了。
阅读(...) 评论()删除cookies及上网历史记录(DELPHI代码完整版本)
- 一切若然 - ITeye博客
博客分类:
//前面要加几个pas单元 uses Registry,ShellApi, WinInet,ShlObj,ComObj; procedure DelRegC var
reg:TR begin
reg:=Tregistry.
reg.RootKey:=HKEY_CURRENT_USER;
reg.DeleteKey(’Software\Microsoft\Internet Explorer\TypedURLs’);
function GetCookiesFolder: var
pidl:pItemIDL
buffer:array [ 0..255 ] begin
SHGetSpecialFolderLocation(
application.Handle , CSIDL_COOKIES, pidl);
SHGetPathFromIDList(pidl, buffer);
result:=strpas(buffer);
function ShellDeleteFile(sFileName: string): B var
FOS: TSHFileOpS begin
FillChar(FOS, SizeOf(FOS), 0); {记录清零}
with FOS do
wFunc := FO_DELETE;//删除
pFrom := PChar(sFileName);
fFlags := FOF_NOCONFIRMATION;
Result := (SHFileOperation(FOS) = 0);
//删除cookies procedure DelC var
dir: begin
InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
dir:=GetCookiesF
ShellDeleteFile(dir+’\*.txt’+#0);
//网上很多代码这里没有加最后的#0,在xp下经测试会报错
//删除历史记录 procedure DelH var
lpEntryInfo: PInternetCacheEntryI
hCacheDir: LongW
dwEntrySize, dwLastError: LongW begin
dwEntrySize := 0;
FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
GetMem(lpEntryInfo, dwEntrySize);
hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
if hCacheDir 〈〉 0 then
DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
FreeMem(lpEntryInfo);
dwEntrySize := 0;
FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^),
dwEntrySize);
dwLastError := GetLastError();
if dwLastError = ERROR_INSUFFICIENT_BUFFER then //如果成功
GetMem(lpEntryInfo, dwEntrySize); {分配dwEntrySize字节的内存}
if FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) then
DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
FreeMem(lpEntryInfo);
until (dwLastError = ERROR_NO_MORE_ITEMS); except
//补充函数type
pwcsTitle:
ftLastVisited:
ftLastUpdated:
ftExpires:
IEnumSTATURL
interface(IUnknown)
['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
Next(celt:
pceltFetched:
PLongint):
Skip(celt:
IEnumSTATURL):
SetFilter(poszFilter:
IUrlHistoryStg
interface(IUnknown)
['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
AddUrl(pocsUrl:
pocsTitle:
DeleteUrl(pocsUrl:
QueryUrl(pocsUrl:
lpSTATURL:
TSTATURL):
BindToObject(pocsUrl:
EnumUrls(out
IEnumSTATURL):
IUrlHistoryStg2
interface(IUrlHistoryStg)
['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']
AddUrlAndNotify(pocsUrl:
pocsTitle:
fWriteHistory:
poctNotify:
punkISFolder:
IUnknown):
ClearHistory:
function ClearIEHistory:
CLSID_CUrlHistory:
'{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
IEHistory:IUrlHistoryStg2;
IEHistory:=CreateComObject(CLSID_CUrlHistory)
IUrlHistoryStg2;
IEHistory.ClearH
procedure TForm1.Button1Click(Sender: TObject); begin
DelRegC//清理注册表
//删除cookies(ie缓冲文件夹下面cookies文件)
//删除历史记录(ie缓冲文件夹下所有文件)
//C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files
ClearIEH //补充删除网页历史
浏览: 88655 次
来自: 洛阳
很详细,要是包含FlexChart的用法就更好了
输入 00123
判定为数字输入 100.123判定为非数字 ...
GDGZWQZ 写道下列办法可实现对话框自动定时关闭:在程序中 ...
下列办法可实现对话框自动定时关闭:在程序中插入一个定时器,设置 ...
写的很详细~&>&&>&开发技术&>&Delphi&>&在内存中运行EXE可执行文件(Delphi7源代码)
在内存中运行EXE可执行文件(Delphi7源代码)
上传大小:621KB
MemoryRun是一个提供了在内存中运行可执行文件功能的单元.用Delphi7编写,
没有用任何内镶汇编.
综合评分:3.8(41位用户评分)
所需积分:
下载个数:159
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有19条
终于找到了,好多地方都不让下载。
有的系统上运行出错
有点问题啊,不完善
不是内存运行好不?老黑的东西
我没有弄成功呢,怎么回事呢
这个代码网上很早就公布了,可能哪个病毒使用过,所以打开了会报毒,而且没有源代码,期待高人做出更好的
还行吧,可以好好看看,但是还是有点费劲,谢谢楼主
有用处,好东西,这5分没白给,不像那三个挂xe3破解的王八蛋,里面有木马。
d7可用,哈哈
用不了,可能是版本不对,还有为啥一个单元没有原码
审核通过送C币
Delphi 1.0~7.0合集+文章+代码+控件
创建者:caozhy
Borland Delphi合集
创建者:wuwei666888
Delphi编程
创建者:zang
上传者其他资源上传者专辑
用于AJAX程序的Loading图标汇总
零基础学JavaScript PPT
中文RFC文档(全称:Request For Comments 即“请求注解”)
ADO程序员参考手册.chm
仿百度知道程序-oask问答系统
开发技术热门标签
VIP会员动态
前端开发重难点
17年软考最新真题及解析
物联网全栈开发专题
二十大技术领域优质资源
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&vip年卡&4000万程序员的必选
在内存中运行EXE可执行文件(Delphi7源代码)
会员到期时间:剩余下载个数:
请勿使用迅雷下载
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200个资源免积分下载
请勿使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:

我要回帖

更多关于 文件完整性校验工具 的文章

 

随机推荐