财开心批量处理系统V4.0
前言
上次分析了亿企代账对他的发票提取有很大兴趣,同时下载了几大财务厂商提供的发票提取,很多都是采用的这个,如云账房销项提取插件还有本次研究的财开心批量处理系统
分析

demo
直接用亿企代账分析的代码,提示授权,如下图:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function startDataEngine(): Integer; stdcall; external 'Aisino30DBCollector_V2.dll';
function aisino30OpenSql(p1, p2, p3, p4, p5, p6, p7: PAnsiChar): Integer; stdcall; external 'Aisino30DBCollector_V2.dll';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
p1, p2, p3, p4, p5, p6, p7: PAnsiChar;
begin
i := startDataEngine;
aisino30OpenSql(p1, p2, p3, p4, p5, p6, p7);
end;
end.

看来找到出处了,原来是另有奇人还以为是自己写的,多少有点失望,居然也是用的别人的,修改下代码捕获下这个异常
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
p1, p2, p3, p4, p5, p6, p7: PAnsiChar;
begin
try
i := startDataEngine;
aisino30OpenSql(p1, p2, p3, p4, p5, p6, p7);
mmoOut.Text := 'ok';
except
on E: Exception do
begin
mmoOut.Text := '异常:'+E.Message;
end;
end;
end;
脱离调试环境,居然捕获不到错误

参数附上值看看,最终的参数
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
p1, p2, p3, p4, p5, p6, p7, p8: PAnsiChar;
begin
try
i := startDataEngine;
p1 := 'C:\Program Files (x86)\Aisino\开票软件\Bin\842454545454545.0';
p2 := PAnsiChar(mmoInput.Text);
GetMem(p3, 100);
GetMem(p4, 100);
GetMem(p5, 100);
GetMem(p7, 100);
aisino30OpenSql(p1, p2, p3, p4, p5, 100, p7, 100);
mmoOut.Text := Format('p4:%s p5%s p6%s p7:%s', [p4, p5, p6, p7])
except
on E: Exception do
begin
mmoOut.Text := '异常:' + E.Message;
end;
end;
end;

这个QQ居然联系不上作者

百度看看,信息不少


去博客看看:https://blog.csdn.net/kongguoqing791025/

可惜作者已经注销了,QQ也联系不上,以前的文章也没有了,还好百度快照还有,写的挺好的,可惜失联了,继续我们的研究,我们用OD分析下看看能不能绕过去

都设置上断点

可以进入断点里面,直接跳过,提示新的错误了,输出的文件大小太小了

再修改,成功了,最终代码
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
p1, p2, p3, p4, p5, p6, p7, p8: PAnsiChar;
begin
try
i := startDataEngine(p1, p2);
p1 := 'C:\Program Files (x86)\Aisino\开票软件\Bin\842454545454545.0';
p2 := PAnsiChar(mmoInput.Text);
p3 := 'c:\output';
GetMem(p5, 1000);
GetMem(p7, 1000);
i := aisino30OpenSql(p1, p2, p3, p4, p5, 1000, p7, 1000);
mmoOut.Text := Format('i:%d p5:%s p7:%s', [i, p5, p7])
except
on E: Exception do
begin
mmoOut.Text := '异常:' + E.Message;
end;
end;
end;


总结
- 经过上次分析亿企代账,调用财开心代码,简单很多,上次异常错误,主要还是参数不对
- 如果别人给你提供DLL,一般都会有返回参数、错误信息(分配内存,谁调用谁释放)
- 只要有耐心,恒心,不放弃,最终会收获
财开心批量处理系统V4.0的更多相关文章
- CRMEB单商户商城系统v4.0源码,含前端uni-app源码
CRMEB商城系统是基于ThinkPhp6.0+Vue开发的一套新零售移动电商系统,CRMEB系统就是集客户关系管理+营销电商系统,能够快速积累客户.会员数据分析.智能转化客户. 有效提高销售.会员维 ...
- 最新发布C#.NET快速开发框架企业版V4.0 (适合开发ERP、进销存系统)
C/S系统开发框架-企业版 V4.0 (Enterprise Edition) http://www.csframework.com/cs-framework-4.0.htm 视频下载: 百度网盘: ...
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\106f9ae8\cc0e1
在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.Ne ...
- 格式工厂 v4.0.0 最新去广告绿色纯净版
最好用的多媒体格式转换利器:格式工厂现已更新至v4.0,此次更新加入最新的HEVC(H265)编码,MP4,MKV的压缩比大幅度提高!格式工厂,轻松转换一切你想要的格式!利器在手,转换不愁! 格式工厂 ...
- 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\41c191fd\ff9345c5\App_Web_login.cshtml.65793277
本地开发环境没问题,但是发布到服务器出现问题或则直接在IIS上修改东西就给我抛出以下错误: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework64 \v4 ...
- 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0
大家好,Node.JS 4.0 发布了,这个流行的服务器端 JS 平台合并了 Node.js 和 io.js 的代码,4.0 版就是这两个项目结合的产物——现在合并为一个代码库.这次最主要的变化是 N ...
- 调用 GetProcAddress 失败,在 ISAPI 筛选器 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" 上
1.选择网站的ISAPI筛选器,设置ASP.NET的 aspnet_filter.dll右键恢复为父项 如果问题还未解决,执行第2步: 2.是否注册了asp.net,打开cmd运行:C:\Window ...
- 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files”的写访问权限。
卸载了域控制器之后,IIS出现“当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS2\Microsoft.NET\Framework\v4.0.30319 ...
- 生日小助手V4.0——迁移到Python3
生日小助手V4.0——迁移到Python3 生日小助手V4.0只支持Linux系统,依赖命令行软件lunar Ubuntu系统安装方法:1.安装lunarsudo apt-get install lu ...
- C# Winform开发框架企业版V4.0新特性
企业版V4.0 - 新特性 C/S系统开发框架-企业版 V4.0 (Enterprise Edition) 简介: http://www.csframework.com/cs-framework-4. ...
随机推荐
- vue3.0使用富文本编辑器VueQuill
1. npm install @vueup/vue-quill@alpha --save 2. 在main.js中全局引入 import { QuillEditor } from '@vueup/vu ...
- TCP连接connect函数返回错误
如果是 TCP 套接字,那么调用 connect 函数将激发 TCP 的三次握手过程,而且仅在连接建立成功或出错时才返回.其中出错返回可能有以下几种情况: 三次握手无法建立,客户端发出的 SYN 包没 ...
- 整合log4j
引入依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId& ...
- js中的对象方法中this指向问题
对象方法调用this所在函数fn的是b,所以this指向b,b.a1='hello a3' ,b没有a2属性,b.a2=undefinedvar a1='hello a1'var a2='hello ...
- drf从入门到飞升仙界 07
认证组件 ## 认证组件逻辑 # 1.登录认证的限制: - 访问接口,有的需要登陆后才能访问,有的接口,不登录就能访问 # 2.准备: -User表 : 存储用户名,密码 -UserToken表:存储 ...
- [BOM]前端解析cookie为对象
参考解析页面传参 var cookie_str = document.cookie var cookie_arr = cookie_str.split("; ") var cook ...
- 宝塔面板Nginx开启gzip,提高网站访问速度的方法
这篇文章主要为大家详细介绍了宝塔面板Nginx开启gzip,提高网站访问速度的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 最近有用户问小编说在宝塔面板N ...
- [mysql练习]多行结果合并问题练习
有一个scores表,表结构和数据如下: id, stu_id, name,course, grade 1,1,贾万, 语文, 902,1,贾万 ,数学 ,100 3,2,毛之远 ,语文 ,974,2 ...
- js - script标签的for属性和event属性
js - script标签的for属性和event属性 <script language="javascript" for="window" event= ...
- lua中定义变量用and和or连接
原文链接 最近在写代码中看到lua定义变量有local a = value1 and value2的操作,有些疑问,在此记录一下:当连接两个操作数时,1.对于运算符and,假设它的第一个操作数为假,就 ...