财开心批量处理系统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. ...
随机推荐
- Kubernetes基础配置管理
一.ConfigMap创建 1-1.基于目录创建ConfigMap 首先创建一个configmap/conf存储目录,分别建立.conf文件 mkdir /configmap/conf #创建.con ...
- fabric学习笔记4
fabric学习笔记4 20201303张奕博 2023.1.12 目前fabric存在的项目工程 Hyperledger Sawtooth 该项目由Intel 等企业发起和贡献的分布式账本平台,基于 ...
- Java流程控制之for循环
for循环[重点] 虽然所有的循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是 ...
- Oracle dump文件的一些经验
dump文件对于DBA而言再平常不过了.不过因为dump文件是二进制文件,我们平时使用中不太关注.再导入dump文件时有很多细节和技巧是值得注意的. 1.查看dump文件的一些基本信息 strings ...
- spring cloud 配置文件加密解密
1.底包 <dependency> <groupId>org.springframework.security</groupId> <artifact ...
- CRLF和LF的差异
CRLF, LF 是用来表示文本换行的方式.CR(Carriage Return) 代表回车,对应字符 '\r':LF(Line Feed) 代表换行,对应字符 '\n'.由于历史原因,不同的操作系统 ...
- 2022-04-18内部群每日三题-清辉PMP
1.在为一个有预算限制的项目生成状态报告时,项目经理发现该项目比进度计划落后一周.若要将项目拉回正轨,项目经理应该怎么做? A.重新分配关键路径活动的团队成员. B.向项目发起人要求额外的时间. C. ...
- glibc被卸载恢复过程
问题描述:升级软件包时,rpm -e glibc --nodeps 卸载了glibc软件,glibc是系统命令库,之后一些命令不能使用,系统几近奔溃恢复步骤: 1). 挂载装系统光盘,设置从光盘启动, ...
- python 发送 application/x-www-form-urlencoded 类型的数据包
在网上百度了很多,坑的要死,基本不咋好用,自己多尝试了几遍,成功实现了. data 的构建方式 data = f"page={page}&sign={sign}&t={t}& ...
- 进程间通信测试-signal
截图 代码 #include <stdio.h> #include <unistd.h> #include <signal.h> #include <stri ...